DbUtils组件(核心类QueryRunner)学习总结

一.什么是DbUtils组件

Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。

下载组件,引入jar文件:commons-dbutils-1.6.jar 密码:tygh
maven环境配置:

 
      commons-dbutils
      commons-dbutils
      1.6
    

二.核心类QueryRunner

带有Connection的

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 rsh, Object... params) 查询方法

不带有Connection的

Int update( String sql, Object param); 执行更新带一个占位符的sql
Int update( String sql, Object… param);执行更新带多个占位符的sql
Int[] batch( String sql, Object[][] params); 批处理

注意: 如果调用DbUtils组件的操作数据库方法,没有传入连接对象,那么在实例化QueryRunner对象的时候需要传入数据源对象: QueryRunner qr = new QueryRunner(DataSource ds);

1.更新操作(包括delete 、insert、 update)

例1:
 @Test
    public void delete() throws Exception {
        String sql = " delete from car where id =? ";
        conn = ConnUtil.getConnextion();
        // 创建DbUtils核心工具类对象
        QueryRunner qr = new QueryRunner();
        qr.update(conn, sql, 3);
        DbUtils.close(conn);
    }

结果测试


DbUtils组件(核心类QueryRunner)学习总结_第1张图片
DbUtils组件(核心类QueryRunner)学习总结_第2张图片
DbUtils组件(核心类QueryRunner)学习总结_第3张图片
例2:
 public void save(CarBean carBean)throws Exception {
        String sql = "INSERT INTO car (carname,carEntity) VALUES(?,?); " ;
        conn = ConnUtil.getConnextion();
        QueryRunner qr = new QueryRunner();
        // 批量插入
        qr.batch(conn, sql, new Object[][]{ {"宝马","2017"},{"奔驰","2017"}  });
        // 关闭
        conn.close();
    }
DbUtils组件(核心类QueryRunner)学习总结_第4张图片
image.png
DbUtils组件(核心类QueryRunner)学习总结_第5张图片

DbUtils组件(核心类QueryRunner)学习总结_第6张图片

2.查询操作

DbUtils提供的封装结果的一些对象:

1)BeanHandler: 查询返回单个对象
2) BeanListHandler: 查询返回list集合,集合元素是指定的对象

  1. ArrayHandler, 查询返回结果记录的第一行,封装对对象数组, 即返回:Object[]
    1. ArrayListHandler, 把查询的每一行都封装为对象数组,再添加到list集合中
    2. ScalarHandler 查询返回结果记录的第一行的第一列 (在聚合函数统计的时候用)
    3. MapHandler 查询返回结果的第一条记录封装为map
  2. MapListHandler 查询返回结果封装为List
  • a.自定义结果集封装数据

@Test
    public void carFind() throws Exception {
        String sql = " select * from car where id = ? ";
        conn = ConnUtil.getConnextion();
        QueryRunner qr = new QueryRunner();
        //查询
        CarBean carBean= qr.query(conn, sql, new ResultSetHandler() {
            //自定义 如何封装一个CarBean对象
            public CarBean handle(ResultSet resultSet) throws SQLException {
                if(resultSet.next()) {
                    CarBean carBean = new CarBean();
                    carBean.setId(resultSet.getInt("id"));
                    carBean.setCarname(resultSet.getString("carname"));
                    carBean.setCarname(resultSet.getString("carEntity"));
                    return carBean;
                }
                return null;
            }
        },1);
        System.out.println(carBean.getId()+""+carBean.getCarname()+""+carBean.getCarEntity());

    }
DbUtils组件(核心类QueryRunner)学习总结_第7张图片
  • b.查询使用组件提供的BeanHandler结果集对象封装数据

@Test
    public void carFind() throws Exception {
        String sql = " select * from car where id = ? ";
        conn = ConnUtil.getConnextion();
        QueryRunner qr = new QueryRunner();
        //查询
     CarBean carBean = qr.query(conn,sql,new BeanHandler(CarBean.class),2);

      System.out.println(carBean.getId()+" "+carBean.getCarname()+" "+carBean.getCarEntity());
      conn.close();

    }
DbUtils组件(核心类QueryRunner)学习总结_第8张图片
  • c.查询使用组件提供的BeanListHandler结果集对象封装数据

@Test
    public void carFind() throws Exception {
        String sql = " select * from car where id = ? ";
        conn = ConnUtil.getConnextion();
        QueryRunner qr = new QueryRunner();
        //查询
     List  carBean = qr.query(conn,sql,new BeanListHandler(CarBean.class),4);

      System.out.println(carBean.get(0).getId()+" "+carBean.get(0).getCarname()+" "+carBean.get(0).getCarEntity());
      conn.close();

    }
DbUtils组件(核心类QueryRunner)学习总结_第9张图片
  • d.查询使用组件提供的MapHandler 结果集对象封装数据

@Test
    public void carFind() throws Exception {
        String sql = " select * from car";
        conn = ConnUtil.getConnextion();
        QueryRunner qr = new QueryRunner();
        //查询
     Map carBean = qr.query(conn,sql,new MapHandler());

      System.out.println(carBean);
      conn.close();

    }

DbUtils组件(核心类QueryRunner)学习总结_第10张图片
image.png
  • e.查询使用组件提供的ScalarHandler 结果集对象封装数据(在聚合函数统计时候用)

@Test
    public void carFind() throws Exception {
        String sql = " select count(*) from car";
        conn = ConnUtil.getConnextion();
        QueryRunner qr = new QueryRunner();
        //查询
     Long carBean = qr.query(conn,sql,new ScalarHandler());

      System.out.println(carBean);
      conn.close();

    }
DbUtils组件(核心类QueryRunner)学习总结_第11张图片

文章文集:JavaEE--学习笔记

你可能感兴趣的:(DbUtils组件(核心类QueryRunner)学习总结)