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
*/