day48-JDBC和连接池04( 六 )


文章插图
光标跳转到如下方法:
public <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh,Object... params) throws SQLException {PreparedStatement stmt = null;//定义PreparedStatement对象ResultSet rs = null;//接收返回的resultSetT result = null;//返回ArrayListtry {stmt = this.prepareStatement(conn, sql);//创建PreparedStatementthis.fillStatement(stmt, params);//对SQL语句进行?赋值rs = this.wrap(stmt.executeQuery());//执行SQL,返回resultSetresult = rsh.handle(rs);//将返回的resultSet-->封装到ArrayList中[使用反射,对传入的class对象进行处理]} catch (SQLException e) {this.rethrow(e, sql, params);} finally {try {close(rs);//关闭resultSet} finally {close(stmt);//关闭preparedStatement}}return result;//返回ArrayList}

经验总结扩展阅读