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 }