DbUtils组件
来源:互联网 发布:pes2017曼城数据 编辑:程序博客网 时间:2024/05/01 11:42
commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司的首选。
DbUtils组件
1. 简化jdbc操作2. 下载组件,引入jar文件 : commons-dbutils-1.6.jar
实例
|-- 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提供的封装结果的一些对象: 1) BeanHandler: 查询返回单个对象 2) BeanListHandler: 查询返回list集合,集合元素是指定的对象 3) ArrayHandler, 查询返回结果记录的第一行,封装对对象数组, 即返回:Object[] 4) ArrayListHandler, 把查询的每一行都封装为对象数组,再添加到list集合中 5) ScalarHandler 查询返回结果记录的第一行的第一列 (在聚合函数统计的时候用) 6) MapHandler 查询返回结果的第一条记录封装为map
public class App_update { private Connection conn; // 1. 更新 @Test public void testUpdate() throws Exception { String sql = "delete from admin where id=?"; // 连接对象 conn = JdbcUtil.getConnection(); // 创建DbUtils核心工具类对象 QueryRunner qr = new QueryRunner(); qr.update(conn, sql, 26); // 关闭 DbUtils.close(conn); } // 2. 批处理 @Test public void testBatch() throws Exception { String sql = "insert into admin (userName, pwd) values(?,?)"; conn = JdbcUtil.getConnection(); QueryRunner qr = new QueryRunner(); // 批量删除 qr.batch(conn, sql, new Object[][]{ {"jack1","888"},{"jack2","999"} }); // 关闭 conn.close(); }}
public class App_query { private Connection conn; // 一、查询, 自定义结果集封装数据 @Test public void testQuery() throws Exception { String sql = "select * from admin where id=?"; // 获取连接 conn = JdbcUtil.getConnection(); // 创建DbUtils核心工具类对象 QueryRunner qr = new QueryRunner(); // 查询 Admin admin = qr.query(conn, sql, new ResultSetHandler<Admin>() { // 如何封装一个Admin对象 public Admin handle(ResultSet rs) throws SQLException { if (rs.next()) { Admin admin = new Admin(); admin.setId(rs.getInt("id")); admin.setUserName(rs.getString("userName")); admin.setPwd(rs.getString("pwd")); return admin; } return null; } }, 29); // 测试 System.out.println(admin); // 关闭 conn.close(); } // 二、查询, 使用组件提供的结果集对象封装数据 // 1)BeanHandler: 查询返回单个对象 @Test public void testQueryOne() throws Exception { String sql = "select * from admin where id=?"; // 获取连接 conn = JdbcUtil.getConnection(); // 创建DbUtils核心工具类对象 QueryRunner qr = new QueryRunner(); // 查询返回单个对象 Admin admin = qr.query(conn, sql, new BeanHandler<Admin>(Admin.class), 29); System.out.println(admin); conn.close(); } // 2)BeanListHandler: 查询返回list集合,集合元素是指定的对象 @Test public void testQueryMany() throws Exception { String sql = "select * from admin"; conn = JdbcUtil.getConnection(); QueryRunner qr = new QueryRunner(); // 查询全部数据 List<Admin> list = qr.query(conn, sql, new BeanListHandler<Admin>(Admin.class)); System.out.println(list); conn.close(); } @Test // 3) ArrayHandler, 查询返回结果记录的第一行,封装对对象数组, 即返回:Object[] // 4) ArrayListHandler, 把查询的每一行都封装为对象数组,再添加到list集合中 // 5) ScalarHandler 查询返回结果记录的第一行的第一列 (在聚合函数统计的时候用) // 6) MapHandler 查询返回结果的第一条记录封装为map public void testArray() throws Exception { String sql = "select * from admin"; conn = JdbcUtil.getConnection(); QueryRunner qr = new QueryRunner(); // 查询 //Object[] obj = qr.query(conn, sql, new ArrayHandler()); //List<Object[]> list = qr.query(conn, sql, new ArrayListHandler()); //Long num = qr.query(conn, sql, new ScalarHandler<Long>()); Map<String, Object> map = qr.query(conn,sql, new MapHandler()); conn.close(); } }
0 0
- 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工具类
- wust1593线段树
- 设计模式(Design Patterns)
- 编译原理--C-Minus词法分析器C++实现
- 使用cocoaPods 做依赖的管理
- YK线上机器redis配置(没有主从,单点,一致性哈希)
- DbUtils组件
- spring的事务解读
- 如何分析thread dump(另一篇)
- 天天学C#--数据访问类(一)
- 正则表达式常用验证
- LeetCode *** 152. Maximum Product Subarray
- 好文!关于iOS下的正则表达式实战案例
- Android studio 使用技巧以及常用设置
- python_笔记4_dict字典