在使用QueryRunner类的时候,直接new本类,无需传递连接池或连接,如果是普通连接,最终释放连接

/**
*
* 在使用QueryRunner类的时候,直接new本类,无需传递连接池或连接
*
* 1. 这个类中的方法自己来处理连接的问题 无需外界传递
* 2. 通过JdbcUtils.getConnection()得到连接,有可能是事务连接,
* 也有可能是普通连接,如果是普通连接,关闭!
* JdbcUtils.releaseConnection()完成释放!
* @author hui.zhang
*
*/
public class TxQueryRunner extends QueryRunner {
@Override
public int[] batch(String sql, Object[][] params) throws SQLException {
Connection conn = JdbcUtils.getConnection();
int[] batch = super.batch(conn, sql, params);
JdbcUtils.releaseConnection(conn);
return batch;
} @Override
public <T> T query(String sql, ResultSetHandler<T> rsh, Object... params)
throws SQLException {
Connection conn = JdbcUtils.getConnection();
T result = super.query(conn, sql, rsh, params);
JdbcUtils.releaseConnection(conn);
return result;
} @Override
public <T> T query(String sql, ResultSetHandler<T> rsh) throws SQLException {
Connection conn = JdbcUtils.getConnection();
T result = super.query(conn, sql, rsh);
JdbcUtils.releaseConnection(conn);
return result;
} @Override
public int update(String sql, Object... params) throws SQLException {
Connection conn = JdbcUtils.getConnection();
int update = super.update(conn, sql, params);
JdbcUtils.releaseConnection(conn);
return update;
} @Override
public int update(String sql, Object param) throws SQLException {
Connection conn = JdbcUtils.getConnection();
int update = super.update(conn, sql, param);
JdbcUtils.releaseConnection(conn);
return update;
} @Override
public int update(String sql) throws SQLException {
Connection conn = JdbcUtils.getConnection();
int update = super.update(conn, sql);
JdbcUtils.releaseConnection(conn);
return update;
} }
05-11 17:52