Error message here!

Hide Error message here!

忘记密码?

Error message here!

请输入正确邮箱

Hide Error message here!

密码丢失?请输入您的电子邮件地址。您将收到一个重设密码链接。

Error message here!

返回登录

Close

DBUtils

木兮_1112 2019-08-14 13:59:00 阅读数:336 评论数:0 点赞数:0 收藏数:0

  DBUtils是JDBC的简化开发工具包。需要导入commons-dbutils-1.6.jar才能够正常使用DBUtils工具。
1、DBUtils功能简介
   1.QueryRunner中提供对SQL语句操作的API
   2.ResultSetHandler接口,用于定义select操作后,怎样封装结果集
   3.DBUtils类,它是一个工具类,定义了关闭资源与事务处理的方法
2、QueryRunner核心类
   1.update(Connection conn ,String sql, Object ... params), 用来完成表数据的增加、删除、更新操作。
   2.query(Connection conn ,String sql ,ResultSetHandler<T>rsh, Object...params), 用来完成表数据的查询操作.
3、QueryRunner实现添加、更新、删除操作
3.1 添加
 public void insert(){
     try{
         //获取一个用来执行SQL语句的对象 QueryRunner
         QueryRunner qr = new QueryRunner();
         String sql = "insert into student(sno,sname,ssex) values (?,?,?)";
         Object[] params = {"1","张三","男"};
         Connection conn = JDBCUtils.getConnection();
         int line = gr.update(conn,sql,params);//用来完成表数据的增加、删除、更新操作
         //结果处理集
         System.out.println("line="+line);
     }catch(SQLException e){
         throw new RuntimeException(e);
     }
 }
 
3.2 更新
 public void update(){
     try {
         //创建一个QueryRunner对象,用来完成SQL语句的执行
         QueryRunner qr = new QueryRunner();
         //执行SQL语句
         String sql = "UPDATE student SET sname = '李四' WHERE sno=?";
         Object[] params = {"1"};
         Connection conn = JDBCUtils.getConnection();
         int line = qr.update(conn, sql, params);
         //结果集的处理
         System.out.println("line="+line);
     } catch (SQLException e) {
         throw new RuntimeException(e);
     }
 }
 
3.3 删除
 public void delete(){
     try {
         //创建一个QueryRunner对象,用来完成SQL语句的执行
         QueryRunner qr = new QueryRunner();
         //执行SQL语句
         String sql = "DELETE FROM student WHERE name = ?";
         Object[] params = {"张三"};
         Connection conn = JDBCUtils.getConnection();
         int line = qr.update(conn, sql, params);
         //结果集的处理
         System.out.println("line="+line);
     } catch (SQLException e) {
         throw new RuntimeException(e);
     }
 }
 
4、QueryRunner实现查询操作
· query(Connection conn,String sql,ResultSetHandler<T> rsh,Object... params), 用来完成表数据的查询操作。
 
4.1 ResultSetHandler结果集处理类
 

ArrayHandler

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

ArrayListHandler

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

BeanHandler

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

BeanListHandler

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

ColumnListHandler

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

ScalarHandler

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

MapHandler

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

MapListHandler

将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合

 
4.2 ArrayHandler与ArrayListHandler查询
  数据库初始值:
  
ArrayHandler:将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值.
 
 //采用ArrayHandler处理结果集
 public static void ArrayHandler()throws SQLException{
     QueryRunner qr = new QueryRunner();
     String sql = "select* from book ";
     Object[] objects= qr.query(con,sql, new ArrayHandler());
     for (Object object : objects) {
         System.out.print(object+"\t");
     }
 }

  

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

 //采用ArrayListHandler处理结果
     public static void ArrayListHandler()throws SQLException{
         QueryRunner qr = new QueryRunner();
         String sql = "select* from book ";
         List<Object[]> objects= qr.query(con,sql, new ArrayListHandler());
         for (Object[] object : objects) {
             for (Object o : object) {
                 System.out.print(o+"\t");
             }
             System.out.println("\n");
         }
     }

 

4.3  BeanHandler与BeanListHandler查询

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

 //采用BeanHandler处理结果集
     public static void BeanHandler()throws SQLException{
         QueryRunner qr = new QueryRunner();
         String sql = "select * from book";
         Sort s = qr.query(con,sql,new BeanHandler<Sort>(Sort.class));
         System.out.println(s);
     }

 

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

 //采用BeanListHandler处理结果集
     public static void BeanListHandler()throws SQLException{
         QueryRunner qr = new QueryRunner();
         String sql = "select * from book";
         List<Sort> list= qr.query(con,sql,new BeanListHandler<Sort>(Sort.class));
         for (Sort sort : list) {
             System.out.println(sort);
         }
     }

 

4.4 ColumnListHandler与ScalarHandler查询

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

 //采用ColumnListHandler处理结果集
     public static void ColumnListHandler()throws SQLException{
         QueryRunner qr = new QueryRunner();
         String sql = "select * from book where price=?";
         Object[] obj ={"89"}; //指定列
         List<String> s= qr.query(con,sql,new ColumnListHandler<String>(),obj);
         for (String s1 : s) {
             System.out.println(s1);
         }
     }

 

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

 //采用ScalarHandler处理结果集
     public static void ScalarHandler()throws SQLException{
         QueryRunner qr = new QueryRunner();
         String sql = "select count(*) from book ";
         long s = qr.query(con,sql,new ScalarHandler<Long>());
         System.out.println(s);
     }

 

4.5 MapHandler和MapListHandler查询

MapHandler:将结果集第一行封装到Map集合中,Key 列名, Value 该列数据

//采用MapHandler处理结果集
    public static void MapHandler()throws SQLException{
        QueryRunner qr = new QueryRunner();
        String sql = "select * from book";
        Map<String,Object> map = qr.query(con,sql,new MapHandler());
        for (String key : map.keySet()) {
            System.out.println(key+"...."+map.get(key));
        }
    }

 

MapListHandler:将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合

 //采用MapListHandler处理结果集
    public static void MapListHandler()throws SQLException{
        QueryRunner qr = new QueryRunner();
        String sql = "select * from book";
        List<Map<String,Object>> list = qr.query(con,sql,new MapListHandler());
        for (Map<String, Object> map : list) {
            for (String s : map.keySet()) {
                System.out.print(s+".."+map.get(s)+"\t");
            }
            System.out.println();
        }
    }

 

版权声明
本文为[木兮_1112]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/liyushan/p/11351537.html