- 导包:
commons-dbutils.jar
- 核心类:
QueryRunner
- 常用方法:
// 执行增,删,改语句, 返回影响的行数 int update(String sql,Object... params);// 执行增, 删, 改语句, 但是需要调用者提供 Connection 对象, 支持事务. int update(Connection ,String sql, Object... params);// 执行查询方法// 返回值类型为 T, 因为 ResultSetHandler 中的 handle 方法会把 ResultSet 结果集转换为 T 类型 T query(String sql, ResultSetHandler rsh, Object...params);// 执行查询方法, 但是需要调用者提供 Connection 对象, 支持事务 T query(Connection con, String sql, ResultSetHandler rsh, Object... params);
4. ResultSetHandler 接口的实现类
- 单行结果:
BeanHandler()
, 构造器需要一个 Class 类型的参数, 用来把一行结果转换成指定类型的 javaBean 对象; - 多行结果:
BeanListHandler()
, 构造器需要一个 Class 类型的参数, 用来把一行结果转换成一个 javaBean, 若是多行结果, 就转换成 List 对象, 即多个 javaBean; - 单行结果:
MapHandler()
, 把一行结果转换成 Map; - 多行结果:
MapListHandler()
, 把一行记录转换成一个 Map, 若是多行, 就是多个 Map, 即 List; - 单行单列:
ScalarHandler()
, 结果集是单行单列的, 返回一个 Object. 通常用于SELECT count(*) FROM t_stu;
单行记录
Map 集合
{sid:1001,sname:zhangsan,age:22,gender:male}
// 示例 // BeanHandler() 和 MapHandler() public void fun() throws Exception{ QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource()); String sql = "SELECT * FROM t_stu WHERE sid=?"; Object[] params = {1001}; // BeanHandler() Stu stu = qr.query(sql,new BeanHandler(stu.class),params); System.out.println(stu); // MapHandler() Map map = qr.query(sql,new MapHandler(),params); System.out.println(map); } // BeanListHandler() 和 MapListHandler() public void fun1() throws SQLException{ QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource()); String sql = "SELECT * FROM t_stu"; // BeanListHandler() List stuList = qr.query(sql, new BeanListHandler (Stu.class)); System.out.println(stuList); // MapListHandler() List
参考资料: