DbUtils组件

commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司的首选。
DbUtils组件,
1. 简化jdbc操作
2. 下载组件,引入jar文件 : commons-dbutils-1.6.jar

核心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);

  • BeanHandler: 查询返回单个对象
  • BeanListHandler: 查询返回list集合,集合元素是指定的对象
  • ArrayHandler, 查询返回结果记录的第一行,封装对对象数组, 即返回:Object[]
  • ArrayListHandler, 把查询的每一行都封装为对象数组,再添加到list集合中
  • ScalarHandler 查询返回结果记录的第一行的第一列 (在聚合函数统计的时候用)
  • MapHandler 查询返回结果的第一条记录封装为map
/**
 * 插入操作
 * @throws Exception
 */
@Test 
public void test() throws Exception{
    String sql = "insert into stu values(?,?);";
    Connection con = JDBCUtil.getConnection();
    // 创建核心工具类
    QueryRunner qr = new QueryRunner();
    // 执行更新操作
    qr.update(con, sql, 5,"张三");
    // 关闭
    con.close();
}

查询操作

/**
 * 查询操作:使用自己实现的方法封装返回结果
 * @throws Exception
 */
@Test 
public void test3() throws Exception{
    String sql = "select * from stu where id=?;";
    Connection con = JDBCUtil.getConnection();
    // 创建核心工具类
    QueryRunner qr = new QueryRunner();
    // 执行查询操作:查询结果使用自己实现的接口封装
    Admin admin = qr.query(con, sql, new ResultSetHandler<Admin>() {
        // 自定义的数据封装方法,需要自定义handler封装方法
        @Override
        public Admin handle(ResultSet rs) throws SQLException {
            if(rs.next()){
                Admin admin = new Admin();
                admin.setId(rs.getInt(1));
                admin.setName(rs.getString(2));
                return admin;
            }
            return null;
        }
    },5);
    System.out.println(admin);
    // 关闭
    con.close();
}

/**
 * 查询操作:使用工具提供的方法
 * @throws Exception
 */
@Test 
public void test4() throws Exception{
    String sql = "select * from stu where id=?;";
    Connection con = JDBCUtil.getConnection();
    // 创建核心工具类
    QueryRunner qr = new QueryRunner();
    // 执行查询操作:查询结果使用工具提供的封装方法
    Admin admin = qr.query(con, sql, new BeanHandler<Admin>(Admin.class),5);
    System.out.println(admin);
    // 关闭
    con.close();
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值