在使用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; } }