DbUtils组件
来源:互联网 发布:poker适合编程吗 编辑:程序博客网 时间:2024/05/01 19:47
DbUtils组件
作用
使用包
API
|-- DbUtils 关闭资源、加载驱动
|-- QueryRunner 组件的核心工具类:定义了所有的与数据库操作的方法(查询、更新)
Int update(Connection conn, String sql, Object param); 执行更新带一个占位符的sql
Int update(Connection conn, String sql, Object… param); 执行更新带多个占位符的sql
Int[] batch(Connection conn, String sql, Object[][] params) 批处理
T query(Connection conn ,String sql, ResultSetHandler<T> rsh, Object... params) 查询方法
Int update( String sql, Object param);
Int update( String sql, Object… param);
Int[] batch( String sql, Object[][] params)
注意: 如果调用DbUtils组件的操作数据库方法,没有传入连接对象,那么在实例化QueryRunner对象的时候需要传入数据源对象: QueryRunner qr = new QueryRunner(ds);
DbUtils提供的封装结果的一些Handler对象:
1) BeanHandler: 查询返回单个对象
2) BeanListHandler: 查询返回list集合,集合元素是指定的对象
3) ArrayHandler, 查询返回结果记录的第一行,封装对对象数组, 即返回:Object[]
4) ArrayListHandler, 把查询的每一行都封装为对象数组,再添加到list集合中
5) ScalarHandler 查询返回结果记录的第一行的第一列 (在聚合函数统计的时候用)
6) MapHandler 查询返回结果的第一条记录封装为map
package com.cn.dbUtils;import java.sql.Connection;import org.apache.commons.dbutils.QueryRunner;import org.junit.Test;import com.cn.util.JdbcUtil;public class UpdateDemo {private Connection conn;/** * 更新 * @throws Exception */@Testpublic void testUpdate() throws Exception {String sql = "delete from users where id = ?";//获取连接对象conn = JdbcUtil.getConnection();//创建DbUtils核心工具类对象QueryRunner qr = new QueryRunner();//更新。Execute an SQL INSERT, UPDATE, or DELETE query with a single replacement parameter.qr.update(conn, sql, 9);conn.close();}/** * 更新批处理 * @throws Exception */@Testpublic void testBatch() throws Exception {String sql = "insert into users(name, password) values(?,?)";//获取连接conn = JdbcUtil.getConnection();//创建DbUtils核心工具类对象QueryRunner qr = new QueryRunner();//批量处理qr.batch(conn, sql, new Object[][]{{"user1", "pwd1"},{"user2", "pwd2"},{"user3", "pwd3"}});//关闭资源conn.close();}}
查询案例
package com.cn.dbUtils;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import java.util.Map;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.ResultSetHandler;import org.apache.commons.dbutils.handlers.ArrayListHandler;import org.apache.commons.dbutils.handlers.BeanHandler;import org.apache.commons.dbutils.handlers.MapHandler;import org.apache.commons.dbutils.handlers.ScalarHandler;import org.junit.Test;import com.cn.entity.User;import com.cn.util.JdbcUtil;public class QueryDemo {private Connection conn;/** * 一、查询,自定义结果集封装数据 * @throws Exception */@Testpublic void testQuery() throws Exception {//获取连接conn = JdbcUtil.getConnection();//sql语句String sql = "select * from users where id = ?";QueryRunner qr = new QueryRunner();/*ArrayListHandler list = new ArrayListHandler();List<Object[]> list2 = qr.query(conn, sql, list);for(Object[] objs : list2){for(int i=0; i<objs.length; i++){System.out.print(objs[i] + "\t");}System.out.println();}*/User user = qr.query(conn, sql, new ResultSetHandler<User>() {@Overridepublic User handle(ResultSet rs) throws SQLException {while(rs.next()){User user = new User();user.setId(rs.getInt("id"));user.setName(rs.getString("name"));user.setPassword(rs.getString("password"));return user;}return null;}}, 3);sql = "select * from users";List<User> list = qr.query(conn, sql, new ResultSetHandler<List<User>>() {@Overridepublic List<User> handle(ResultSet rs) throws SQLException {List<User> list = new ArrayList<User>();while(rs.next()){User user = new User();user.setId(rs.getInt("id"));user.setName(rs.getString("name"));user.setPassword(rs.getString("password"));list.add(user);}return list;}});//测试System.out.println(user);System.out.println(list.toString());//关闭conn.close();}/** * 二、查询, 使用组件提供的结果集对象封装数据 * @throws Exception *///2.1 BeanHandler: 查询返回单个对象@Testpublic void testQueryOne() throws Exception {//sqlString sql = "select * from users where id = ?";//获取连接conn = JdbcUtil.getConnection();//创建QueryRunner对象QueryRunner qr = new QueryRunner();//查询返回单个对象User user = qr.query(conn, sql, new BeanHandler<>(User.class), 10);//测试输出System.out.println(user);//关闭conn.close();}//2.3 BeanListHandler: 查询返回单个对象@Testpublic void testQueryList() throws Exception {//sqlString sql = "select * from users";//获取连接conn = JdbcUtil.getConnection();//创建QueryRunner对象QueryRunner qr = new QueryRunner();//查询返回单个对象//List<User> list = qr.query(conn, sql, new BeanListHandler<User>(User.class));//查询返回list集合,集合元素是指定的对象//System.out.println(list.toString());//Map<String, User> map = qr.query(conn, sql, new BeanMapHandler<String,User>(User.class));//查询返回map集合,集合元素是指定的对象//System.out.println(map.toString());//List<Object[]> arrList = qr.query(conn, sql, new ArrayListHandler()); //把查询的每一行都封装为对象数组,再添加到list集合中////测试输出//for(int i=0; i<arrList.size(); i++){//Object[] objs = arrList.get(i);//for(Object obj : objs){//System.out.print(obj.toString() + "\t");//}//System.out.println();//}Map<String, Object> map = qr.query(conn, sql, new MapHandler());//查询返回结果的第一条记录封装为mapSystem.out.println(map.toString());sql = "select count(*) from users";Long num = qr.query(conn, sql, new ScalarHandler<Long>());//查询返回结果记录的第一行的第一列 (在聚合函数统计的时候用)//测试输出System.out.println(num);//关闭conn.close();}}
- DbUtils组件
- DbUtils组件
- DbUtils组件
- dbutils组件使用
- DbUtils组件使用
- 关于DbUtils组件
- Jakarta Commons组件beanutils、dbutils
- Common Dbutils组件的使用
- 学习笔记之 DBUtils 组件
- JDBC优化之DbUtils组件
- Apache的DbUtils组件学习
- BeanUtils组件和DbUtils组件的使用
- 用组件beanutils,dbutils简化JDBC操作
- 用组件beanutils,dbutils简化JDBC操作
- Common Dbutils组件用法详解(含源代码)
- DbUtils组件的使用小指南
- JDBC通用方法及DbUtils组件使用
- C3P0组件+DbUtils组件实现一个JdbcUtils工具类
- 5.使用逻辑卷管理器管理灵活存储 lvm
- 欢迎使用CSDN-markdown编辑器
- win定时计划运行bat文件如何隐藏cmd窗口
- C++程序设计语言(特别版) -- 一个桌面计算器
- 寒武纪创始人陈天石:如何评价Google最新AI计算高性能专用硬件TPU
- DbUtils组件
- Guava处理原生类型的数据
- STL源码剖析 — 空间配置器(allocator)
- 利用“member initialization list”初始化类成员
- 悲观锁定与乐观锁定
- 正则表达式-量词的三种模式
- OpenCv 2.4.9 (二) 核心函数
- Android中常见的内存泄露
- 【GIT 基础篇三】版本撤销体验