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包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动 ...
随机推荐
- JSON——Java中的使用
1. 构建JSON方法(数据——>JSON) 这里使用Maven构建项目 在pom.xml中添加如下依赖 <dependency> <groupId>org.json&l ...
- (四)EasyUI 使用——form表单2 & window窗口
form表单组件主要有以下内容(如下图) 6. progressbar进度条 每隔1秒让进度条按随机数填充,直至充满进度条刻度(只能执行一次) 进度条: <div id=" ...
- (四)Maven构建多模块项目
在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为domain(域模型层).dao(数据库访问层).service(业务逻辑层).web(表现层),这样分层之 ...
- 在 .NET 4.0 下编写扩展代码以支持 async 异步编程
微软在C# 5中引入了async.await这两个异步编程的关键字,要使用这两个关键字需要你的IDE支持C#5.0语法,也就意味着你需要使用VS 2012版本以上IDE,或者在Vs2010卸载其编译器 ...
- tony_nginx的安装和配置
yum安装nginx Centos默认的yum源里没有nginx,需要手动添加源,有两种方法: 使用nginx提供的一个源设置安装包 nginx下载页面:http://nginx.org/en/dow ...
- Atitit.播放系统规划新版本 and 最近版本回顾 v3 pbf.doc
Atitit.播放系统规划新版本 and 最近版本回顾 v3 pbf.doc 1 版本11 (ing)4 1.1 规划h5本地缓存系列 4 1.2 Android版本app4 1.3 双类别系统, ...
- 使用GraphicsMagick/ImageMagick批量对图片瘦身
GrahpicsMagick: find . -iname "*.jpg" -exec gm convert -strip +profile "*" -qual ...
- [c#.Net]正则表达式 记录
@符号c#字符串前使用@符号,“@”表示,跟在它后面的字符串是个“逐字字符串”. string x="D:\\My Huang\\My Doc"; string y = @&quo ...
- python简单处理xml文件
Python若是想从xml里读点信息,用BeautifulSoup可能会容易一点,但是如果要修改xml,BeatifulSoup就搞不定了,其实直接用lxml就好. from lxml import ...
- LINUX内核升级-更新网卡驱动
因项目需要,将当前内核(2.6.32-220.el6.x86_64)升级到目标内核(2.6.33-110.el6.x86_64),但是编译的目标 内核(2.6.33-110.el6.x86_64)的对 ...