DBUtils

DBUtils

DBUtils就是JDBC的简化开发工具包,是为了简化代码提高效率,减少冗余而存在的,而且封装了对JDBC的操作,简化了JDBC操作,可以少写代码。

Dbutils三个核心功能介绍

 1)QueryRunner中提供对sql语句操作的API.

2)ResultSetHandler接口,用于定义select操作后,怎样封装结果集.

3)DbUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法

1.1  QueryRunner核心类

l  update(Connection conn, String sql, Object... params) ,用来完成表数据的增加、删除、更新操作

l  query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) ,用来完成表数据的查询操作

1.2  QueryRunner实现添加、更新、删除操作

l  update(Connection conn, String sql, Object... params) ,用来完成表数据的增加、删除、更新操作

//数据新增操作
public
void add() throws SQLException{ //创建QuerryRunner对象 QueryRunner qr=new QueryRunner(MyDBUTils.getDataSource()); String sql="insert into sort(sname,sdesc) values(?,?)"; //执行 int row=qr.update(sql,"插排","通电用的"); System.out.println(row); }
//数据修改操作
public
void update() throws SQLException{ //创建QuerryRunner对象 QueryRunner qr=new QueryRunner(MyDBUTils.getDataSource()); String sql="update sort set sname=? where sid=?"; //执行 int row=qr.update(sql,"牛奶","11"); System.out.println(row); }
//数据删除操作
public
void delete() throws SQLException{ //创建QuerryRunner对象 QueryRunner qr=new QueryRunner(MyDBUTils.getDataSource()); String sql="delete from sort where sid=?"; //执行 int row=qr.update(sql,"16"); System.out.println(row); }

1.3     QueryRunner实现查询操作

l  query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params),用来完成表数据的查询操作

 ResultSetHandler结果集处理类

ArrayHandler

将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值

ArrayListHandler

将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。

BeanHandler

将结果集中第一条记录封装到一个指定的javaBean中。

BeanListHandler

将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中

ColumnListHandler

将结果集中指定的列的字段值,封装到一个List集合中

ScalarHandler

它是用于单数据。例如select count(*) from 表操作。

MapHandler

将结果集第一行封装到Map<String,Object>集合中,Key 列名, Value 该列数据

MapListHandler

将结果集每一行封装到List<Map<String,Object>>集合中,Key 列名, Value 该列数据,Map集合存储到List集合

   ArrayHandler与ArrayListHandler查询

ArrayHandler:将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值

//ArrayHandler
    public void get1() throws SQLException{        
        QueryRunner qr=new QueryRunner(MyDBUTils.getDataSource());
        String sql="select * from sort";
        Object[] obj=qr.query(sql,new ArrayHandler());
        for(Object o:obj){
            System.out.print(o+"");
        }
        System.out.println();
    }
    

 ArrayListHandler:将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。

//ArrayListHandler
    public void get2() throws SQLException{    
        QueryRunner qr=new QueryRunner(MyDBUTils.getDataSource());
        String sql="select * from sort";
        List<Object[]> list=qr.query(sql, new ArrayListHandler());
        for(Object[] objs:list){
            for(Object obj:objs){
                System.out.print(obj+" ");
            }
            System.out.println();
        }
    }

  BeanHandler与BeanListHandler查询

l  BeanHandler :将结果集中第一条记录封装到一个指定的javaBean中。

//BeanHandler
    public void get3() throws SQLException{        
        QueryRunner qr=new QueryRunner(MyDBUTils.getDataSource());
        String sql="select * from sort";
        Sort sort=qr.query(sql, new BeanHandler<Sort>(Sort.class));
        System.out.println(sort);
    }

l  BeanListHandler :将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中

 //BeanListHandler
    public void get4() throws SQLException{
        
        QueryRunner qr=new QueryRunner(MyDBUTils.getDataSource());
        String sql="select * from sort";
        List<Sort> list=qr.query(sql, new BeanListHandler<Sort>(Sort.class));
        System.out.println(list);
    }

 ColumnListHandler与ScalarHandler查询

l  ColumnListHandler:将结果集中指定的列的字段值,封装到一个List集合中

 //ColumnListHandler
    public void get5() throws SQLException{        
        QueryRunner qr=new QueryRunner(MyDBUTils.getDataSource());
        String sql="select sname from sort";
        List<String> list=qr.query(sql, new ColumnListHandler<String>());
        System.out.println(list);
    }
    //ColumnListHandler
    public void get6() throws SQLException{
        
        QueryRunner qr=new QueryRunner(MyDBUTils.getDataSource());
        String sql="select * from sort";
        List<String> list=qr.query(sql, new ColumnListHandler<String>("sname"));//重载的构造方法
        System.out.println(list);
    }

l  ScalarHandler:它是用于单数据。例如select count(*) from 表操作。

//ScalarHandler
    public void get7() throws SQLException{        
        QueryRunner qr=new QueryRunner(MyDBUTils.getDataSource());
        String sql="select count(*) from sort";
        Long count=qr.query(sql, new ScalarHandler<Long>());
        System.out.println(count.intValue());
    }    

 

DBUtils

上一篇:数据库表的简单三步操作


下一篇:Oracle中如何构造一条在去年运行不报错今年运行报错的SQL语句