dbUtils 工具类介绍
- 导包:
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>(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<Stu> stuList = qr.query(sql, new BeanListHandler<Stu>(Stu.class));
System.out.println(stuList);
// MapListHandler()
List<Map<String,Object>> 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);
}
参考资料:
dbUtils 工具类介绍的更多相关文章
- Java基础-DButils工具类(QueryRunner)详解
Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC ...
- Java学习笔记49(DBUtils工具类二)
上一篇文章是我们自己模拟的DBUtils工具类,其实有开发好的工具类 这里使用commons-dbutils-1.6.jar 事务的简单介绍: 在数据库中应用事务处理案例:转账案例 张三和李四都有有自 ...
- 30_java之DButils工具类
01DButils工具类的介绍个三个核心类 * A: DButils工具类的介绍个三个核心类 * a: 概述 * DBUtils是java编程中的数据库操作实用工具,小巧简单实用. * DBUtils ...
- DBUtils工具类和DBCP连接池
今日内容介绍 1.DBUtils2.处理结果集的八种方式3.连接池4.连接池的用法1 PrepareStatement接口预编译SQL语句 1.1 预处理对象 * 使用PreparedStatemen ...
- DBUtils工具类的使用
DBUtils工具类1.DBUtils工具类,由apache组织提供的工具类,对JDBC做了一些简单封装. 做了查询的封装,把查询的结果封装到List集合 Map集合 JavaBean对象中 做了增删 ...
- java使用dbutils工具类实现小程序 管家婆记账软件
1.所需创建的包和 jar包 2.创建表结构 #生成一些表数据 ,,'交通银行','2016-03-02','家庭聚餐'); ,,'现金','2016-03-15','开工资了'); ,,'现金', ...
- Java语言Lang包下常用的工具类介绍_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 无论你在开发哪中 Java 应用程序,都免不了要写很多工具类/工具函数.你可知道,有很多现成的工具类可用,并且代码质量都 ...
- Apache Commons 工具类介绍及简单使用
转自:http://www.cnblogs.com/younggun/p/3247261.html Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下 ...
- Apache Commons 工具类介绍及简单使用(转载)
原文链接 http://www.cnblogs.com/younggun/p/3247261.html Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动 ...
随机推荐
- 关于继承Fragment后重写构造方法而产生的错误
在android开发中.写了一个关于继承Fragment的类时,假设有重载构造函数时.会提示"Avoid non-default constructors in fragments: use ...
- 网络方面的常用命令 & 常用端口介绍
在网络方面我们常常会用到如下命令: (1)ping命令:我们常常用来判断2台或2台以上的机器间是否网络连通. ping 192.168.1.88 -t 如果想看任何命令的参数是什么意思,我们只需要:命 ...
- 在php中如何用 union all统计总条数?
网上使用union all 查询记录总条数的参考资料比较少,所以记录下来,以便有同样需求的人使用. $rs_num = Db::query("select sum(a.b) as num f ...
- CentOS6.5配置PHP CI程序
步骤: 1.安装CentOS6.5系统: 1.选择PHP+Mysql环境 2.关闭防火墙和SeLinux 1.chkconfig --level 35 iptables off ...
- 第四天 ThinkPHP手把手高速拼接站点(四)
6月6日,晴天."熟梅天气豆生蛾.一见榴花感慨多. 芒种积阴凝雨润,菖蒲修剪莫蹉跎. " 九.后台编写-续-1 1.改动admin/Tpl/Login/index.html 自己改 ...
- Mysql 没有nvl()函数,却有一个类似功能的函数ifnull()
今天自己无聊写了看了一个查询需求随手写了一个sql语句,发现竟然不能运行,MySQL报[Err] 1305 - FUNCTION ceshi.nvl does not exist的错.才意识到自己写的 ...
- ECMAScript运算符
一元运算符 delete value 删除元素的值 void() 这个经常被使用,用来转换函数的返回值为undefined,这样就不会将返回值输出到屏幕了! 如下: <a href=" ...
- 游戏引擎 Unity 的入门易精通难体现在哪?为什么?
04月212014年 [王楠的回答(37票)]: 为什么入门简单,看一下官网的文档和视频教程就知道了,看完几段视频和例子就能让初学者做出能玩的东西,其他同类商业引擎都做不到.物体+组件的结构,所见 ...
- 服务器操作系统应该选择Debian/Ubuntu还是CentOS?
任何 Linux 发行版本,在理论上都是一样的.只不过操作有的方便,有的麻烦!yum 是比 apt 弱(这就是企业维护和社区维护的区别,企业自己维护不需要这么多功能)但是任何能在 A 发行版本上实现的 ...
- npm安装vue-cil出现错误
这个错误有点尴尬..... 之前全局安装过cil,然后在全局安装出现了这个错误,各种手册看了半天也没有头绪,猛然想起来之前安装过,试下直接初始化项目试一下,果然成功了 然后在 npm install ...