package com.jsonde.client.dao; import com.jsonde.util.db.DbUtils; import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; public class AbstractDao { protected DataSource dataSource; public AbstractDao(DataSource dataSource) { this.dataSource = dataSource; } public DataSource getDataSource() { return dataSource; } public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; } protected Connection connection() throws DaoException { try { Connection connection = dataSource.getConnection(); return connection; } catch (SQLException e) { throw new DaoException(e); } } public void execute(String sql) throws DaoException { Connection connection = null; PreparedStatement preparedStatement = null; try { connection = connection(); preparedStatement = connection.prepareStatement(sql); preparedStatement.execute(); } catch (SQLException e) { throw new DaoException(e); } finally { DbUtils.close(preparedStatement); DbUtils.close(connection); } } }