Apache-DBUtils实现CRUD操作

1. Apache-DBUtils简介

commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。

2. 重要API使用

2.1 QueryRunner

  • 提供一系列重载的update()和query()数据库操作
  • 简化了SQL语句查询,与ResultSetHandler组合一起使用完成大部分数据操作,减少代码量

2.2 ResultSetHandler接口及实现类

  • 该接口处理java.sql.ResultSet,将数据转换为另一种形式

  • 接口主要的实现类

      ArrayHandler:把结果集中的第一行数据转成对象数组。
      ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。
      BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
      BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。
      ColumnListHandler:将结果集中某一列的数据存放到List中。
      KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map
      里,其key为指定的key。
      MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。
      MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List
      ScalarHandler:查询单个值对象
    
  • 插入示例

public void insertTest(){
        QueryRunner qr = new QueryRunner();
        Connection conn=null;
        try {
             conn = DBUtil.getConnection();
            String sql="insert into customers(name,email,birth)values(?,?,?)";
            int inserti = qr.update(conn, sql, "蔡徐坤", "cxk@123.com", "1997-8-9");
            System.out.println("inserti = " + inserti);

        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            DBUtil.closeResource(conn,null);
        }

    }
  • BeanHandler:是ResultSetHandler接口的实现类,用于封装表中的一条记录
    public void query(){
        QueryRunner runner= new QueryRunner();
        Connection conn=null;
        try {
            conn = DBUtil.getConnection();
            String sql = "select id,name,email,birth from customers where id=?";
            BeanHandler<Customer> handler = new BeanHandler<Customer>(Customer.class);
            Customer cu = runner.query(conn, sql, handler, 24);
            System.out.println(cu);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            DBUtil.closeResource(conn,null);
        }

    }
  • BeanListHandler示例
 public void queryList(){
        QueryRunner runner= new QueryRunner();
        Connection conn=null;
        try {
            conn = DBUtil.getConnection();
            String sql = "select id,name,email,birth from customers where id<?";
            BeanListHandler<Customer> handler = new BeanListHandler<Customer>(Customer.class);
            List<Customer> cu = runner.query(conn, sql, handler, 24);
            System.out.println(cu);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            DBUtil.closeResource(conn,null);
        }

    }
  • MapHandler:是ResultSetHandler接口的实现类,对应类中的一条记录,将字段及对应字段的值作为map中的key和value
    public void queryMap(){
        QueryRunner runner= new QueryRunner();
        Connection conn=null;
        try {
            conn = DBUtil.getConnection();
            String sql = "select id,name,email,birth from customers where id=?";
            MapHandler handler = new MapHandler();
            Map<String, Object> query = runner.query(conn, sql, handler, 24);
            System.out.println(query);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            DBUtil.closeResource(conn,null);
        }

    }

2.3 DbUtils

  • 提供如关闭连接、装载JDBC驱动程序等常规工作的工具类,里面的所有方法都是静态的
  • 使用类直接调用方法关闭连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值