博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dbUtils 工具类介绍
阅读量:6221 次
发布时间:2019-06-21

本文共 2352 字,大约阅读时间需要 7 分钟。

  1. 导包: commons-dbutils.jar
  2. 核心类: QueryRunner
  3. 常用方法:
// 执行增,删,改语句, 返回影响的行数    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;
单行记录

1222878-20171004162644552-625912298.png

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
> mapList = qr.query(sql, new MapListHandler()); Sytem.out.println(mapList); } // ScalarHandler() public void fun2() throws SQLException{ QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource()); String sql = "SELECT COUNT(*) FROM t_stu"; // 此处 obj 类型可能为 Integer, Long, BigInteger // 但是这三种类型有共同的父类 Number Number obj = (Number)qr.query(sql,new ScalarHandler()); System.out.println(obj); }

参考资料:

转载于:https://www.cnblogs.com/linkworld/p/7625769.html

你可能感兴趣的文章
about lesscss~
查看>>
ubuntu 系统的一些错误解决
查看>>
MongoDB学习记录
查看>>
字符串
查看>>
如何在Ubuntu/CentOS上安装Linux内核4.0
查看>>
redis实现简单的消息队列(php)
查看>>
MySQL索引的创建、删除和查看
查看>>
汇编 ret,retf和call
查看>>
Java OCR(使用Tess4J)
查看>>
盘点selenium phantomJS使用的坑
查看>>
谈谈angular项目构建中的组织结构
查看>>
web - 实现定时弹出广告
查看>>
linux go环境搭建
查看>>
Groovy中for循环的一个奇怪现象引出的"全局变量?"
查看>>
关于表单的组件 radio select checkbox
查看>>
对chrome开发者工具的有效利用
查看>>
2011年国外最受欢迎的15个社交网站
查看>>
spring中使用logback日志组件替换log4j
查看>>
Wex5开发基础之微信支付
查看>>
JS之prototype基础篇
查看>>