View Javadoc

1   package com.imcode.db;
2   
3   import javax.sql.DataSource;
4   import java.sql.Connection;
5   import java.sql.SQLException;
6   
7   public class DataSourceDatabase extends AbstractDatabase {
8   
9       private DataSource dataSource;
10  
11      public DataSourceDatabase( DataSource dataSource ) {
12          this.dataSource = dataSource;
13      }
14  
15      public Object execute( final DatabaseCommand databaseCommand ) throws DatabaseException {
16          try {
17              Connection connection = dataSource.getConnection();
18              try {
19                  DatabaseConnection defaultDatabaseConnection = new JdbcDatabaseConnection( connection );
20                  return databaseCommand.executeOn( defaultDatabaseConnection );
21              } finally {
22                  connection.close() ;
23              }
24          } catch ( SQLException e ) {
25              throw DatabaseException.fromSQLException( e );
26          }
27      }
28      
29  }