JDBC(十)使用 DBUtils
来源:互联网 发布:软件开发技术培训 编辑:程序博客网 时间:2024/06/05 08:10
1. DBUtils 简介
1)commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,
并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。
并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。
2)API介绍:
org.apache.commons.dbutils.QueryRunner
org.apache.commons.dbutils.ResultSetHandler
org.apache.commons.dbutils.QueryRunner
org.apache.commons.dbutils.ResultSetHandler
3)工具类
org.apache.commons.dbutils.DbUtils
org.apache.commons.dbutils.DbUtils
2. QueryRunner类
1)该类简单化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。
2)QueryRunner类提供了两个构造方法:
默认的构造方法
需要一个 javax.sql.DataSource 来作参数的构造方法。
2)QueryRunner类提供了两个构造方法:
默认的构造方法
需要一个 javax.sql.DataSource 来作参数的构造方法。
3. ResultSetHandler接口
1)该接口用于处理 java.sql.ResultSet,将数据按要求转换为另一种形式。
2)ResultSetHandler 接口提供了一个单独的方法:Object handle (java.sql.ResultSet rs) 。
3)ResultSetHandler 的作用: QueryRunner 的 query 方法的返回值最终取决于
query 方法的 ResultHandler 参数的 hanlde 方法的返回值。
4. ResultSetHandler 接口的实现类
BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。
MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。
MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List。
ScalarHandler: 返回结果集第一行第一列的值.
ArrayHandler:把结果集中的第一行数据转成对象数组。
ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。
ColumnListHandler:将结果集中某一列的数据存放到List中。
KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key。
BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。
MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。
MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List。
ScalarHandler: 返回结果集第一行第一列的值.
ArrayHandler:把结果集中的第一行数据转成对象数组。
ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。
ColumnListHandler:将结果集中某一列的数据存放到List中。
KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key。
5. 测试
QueryRunner queryRunner = new QueryRunner();@Testpublic void testBeanHandler(){Connection conn = null;String sql = "select * from car where id > ?";try {conn = JDBCTools.getConnection();Car car = queryRunner.query(conn, sql, new BeanHandler(Car.class),1);System.out.println(car);//Car [id=2, brand=宝马, price=350000]} catch (Exception e) {e.printStackTrace();} finally{JDBCTools.releaseDB(null, null, conn);}}@Testpublic void testBeanListHandler(){Connection conn = null;String sql = "select * from car where id > ?";try {conn = JDBCTools.getConnection();List<Car> cars = queryRunner.query(conn, sql, new BeanListHandler(Car.class),1);System.out.println(cars);//[Car [id=2, brand=宝马, price=350000], Car [id=3, brand=卡宴, price=350000],..]} catch (Exception e) {e.printStackTrace();} finally{JDBCTools.releaseDB(null, null, conn);}}@Testpublic void testMapHandler(){Connection conn = null;String sql = "select * from car where id > ?";try {conn = JDBCTools.getConnection();Map<String, Object> car= queryRunner.query(conn, sql, new MapHandler(),1);System.out.println(car);//{id=2, price=350000, brand=宝马}} catch (Exception e) {e.printStackTrace();} finally{JDBCTools.releaseDB(null, null, conn);}}@Testpublic void testMapListHandler(){Connection conn = null;String sql = "select * from car where id > ?";try {conn = JDBCTools.getConnection();List<Map<String, Object>> cars = queryRunner.query(conn, sql, new MapListHandler(),1);System.out.println(cars);//[{id=2, price=350000, brand=宝马}, {id=3, price=350000, brand=卡宴}, ..]} catch (Exception e) {e.printStackTrace();} finally{JDBCTools.releaseDB(null, null, conn);}}@Testpublic void testScalarHandler(){Connection conn = null;String sql = "select * from car where id > ?";try {conn = JDBCTools.getConnection();Object obj = queryRunner.query(conn, sql, new ScalarHandler(),1);System.out.println(obj);//2} catch (Exception e) {e.printStackTrace();} finally{JDBCTools.releaseDB(null, null, conn);}}
0 0
- JDBC(十)使用 DBUtils
- JDBC( 十)减轻JDBC,dbutils使用
- J2EE进阶之JDBC工具类DbUtils使用 二十
- jdbc-使用DBUtils进行crud
- JDBC : 使用DBUtils 工具类
- JDBC:Apache DBUtils的使用
- jdbc优化-DButils的使用
- Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用
- Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用
- Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用
- JDBC连接数据库之DBUtils简单使用(6)
- JDBC相关(三):DButils工具类的使用详解
- (三)JDBC连接池&DBUtils—C3P0的使用
- 使用commons-dbutils简化JDBC操作(二) dbutils+反射
- 使用commons-dbutils进行JDBC项目开发
- 使用commons-dbutils进行JDBC项目开发
- 使用commons-dbutils简化JDBC操作(一)
- DbUtils component学习使用(jdbc封装工具)
- 机器学习中常用的矩阵求导公式
- 过滤敏感词汇
- 自定义一个带进度值的圆形进度条
- 51nod-1381 硬币游戏
- Centos7及Cloudera Manager安装教程
- JDBC(十)使用 DBUtils
- 用java实现冒泡排序
- Python(Pygame)窗口显示
- usaco Canada Tour
- 【bzoj4034】[HAOI2015]树上操作
- Rapidly-Exploring Random Trees(RRT)
- C++模拟实现复数类
- 聊聊四种即时通信(Instant Messaging)IM协议
- EMC、Pure和NetApp推新品,NAS闪存场景在哪里