DbUtils
/** * DbUtils :提供如关闭连接、装载 JDBC 驱动等操作的工具类,里面方法都是静态的。 * * public static void close(…) throws java.sql.SQLException * DbUtils 提供三个重载的关闭方法。这些方法检查所提供的参数是不是 NULL,若不是,就关闭 Connection、Statement 和 ResultSet * * public static void closeQuietly(…) * 不仅能在 Connection、Statement 和 ResultSet 为 NULL 情况下避免关闭,还能隐藏一些在程序中抛出的 SQLEeception * * public static void commitAndCloseQuietly(Connection conn) * 用来提交连接,然后关闭连接,在关闭连接时不抛出 SQL 异常 * * public static boolean loadDriver(java.lang.String driverClassName) * 加载 JDBC 驱动,成功返回true。不需要捕捉 ClassNotFoundException 异常 */
QueryRunner
/** * QueryRunner:简化 SQL 查询,与 ResultSetHandler 组合可以完成大部分数据库操作,大大减少编码量。 * 该类提供了两个构造方法:默认的构造方法和需要一个 javax.sql.DataSource 来作参数的构造方法 * * public Object query(Connection conn, String sql, Object[] params, ResultSetHandler rsh) throws SQLException * 执行一个查询操作,在这个查询中,对象数组中的每个元素值被用来作为查询语句的置换参数。该方法会自行处理 PreparedStatement 和 ResultSet 的创建和关闭 * * public Object query(String sql, Object[] params, ResultSetHandler rsh) throws SQLException * 几乎与第一种方法一样;不同在于它是从提供给构造方法的数据源(DataSource) 或使用的 setDataSource 方法中重新获得 Connection * * public Object query(Connection conn, String sql, ResultSetHandler rsh) throws SQLException * 不需要置换参数的查询操作 * * public int update(Connection conn, String sql, Object[] params) throws SQLException * 更新(插入、更新或删除)操作 * * public int update(Connection conn, String sql) throws SQLException * 不需要置换参数的更新操作 */
ResultSetHandler
/** * ResultSetHandler:处理 java.sql.ResultSet,将数据按要求转换为另一种形式,接口提供了一个单独的方法:Object handle (java.sql.ResultSet rs) * * ResultSetHandler 接口实现类 * * ArrayHandler:把结果集中的第一行数据转成对象数组 * ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到 List 中 * BeanHandler:将结果集中的第一行数据封装到一个对应的 JavaBean 实例中 * BeanListHandler:将结果集中的每一行数据都封装到一个对应的 JavaBean 实例中,存放到 List 里 * ColumnListHandler:将结果集中某一列的数据存放到 List 中 * KeyedHandler(name):将结果集中的每一行数据都封装到一个 Map 里,再把这些 map 再存到一个 map 里,其 key 为指定的 key * MapHandler:将结果集中的第一行数据封装到一个 Map 里,key 是列名,value 就是对应的值 * MapListHandler:将结果集中的每一行数据都封装到一个 Map 里,然后再存放到 List */