• DBUtils


      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 添加
     1 public void insert(){
     2     try{
     3         //获取一个用来执行SQL语句的对象 QueryRunner
     4         QueryRunner qr = new QueryRunner();
     5         String sql = "insert into student(sno,sname,ssex) values (?,?,?)";
     6         Object[] params = {"1","张三","男"};
     7         Connection conn = JDBCUtils.getConnection();
     8         int line = gr.update(conn,sql,params);//用来完成表数据的增加、删除、更新操作
     9         //结果处理集
    10         System.out.println("line="+line);
    11     }catch(SQLException e){
    12         throw new RuntimeException(e);
    13     }
    14 }
     
    3.2 更新
     1 public void update(){
     2     try {
     3         //创建一个QueryRunner对象,用来完成SQL语句的执行
     4         QueryRunner qr = new QueryRunner();
     5         //执行SQL语句
     6         String sql = "UPDATE student SET sname = '李四' WHERE sno=?";
     7         Object[] params = {"1"};
     8         Connection conn = JDBCUtils.getConnection();
     9         int line = qr.update(conn, sql, params);
    10         //结果集的处理
    11         System.out.println("line="+line);
    12     } catch (SQLException e) {
    13         throw new RuntimeException(e);
    14     }
    15 }
     
    3.3 删除
     1 public void delete(){
     2     try {
     3         //创建一个QueryRunner对象,用来完成SQL语句的执行
     4         QueryRunner qr = new QueryRunner();
     5         //执行SQL语句
     6         String sql = "DELETE FROM student WHERE name = ?";
     7         Object[] params = {"张三"};
     8         Connection conn = JDBCUtils.getConnection();
     9         int line = qr.update(conn, sql, params);
    10         //结果集的处理
    11         System.out.println("line="+line);
    12     } catch (SQLException e) {
    13         throw new RuntimeException(e);
    14     }
    15 }
     
    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[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值.
     
    1 //采用ArrayHandler处理结果集
    2 public static void ArrayHandler()throws SQLException{
    3     QueryRunner qr = new QueryRunner();
    4     String sql = "select* from book ";
    5     Object[] objects= qr.query(con,sql, new ArrayHandler());
    6     for (Object object : objects) {
    7         System.out.print(object+"	");
    8     }
    9 }

      

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

     1 //采用ArrayListHandler处理结果
     2     public static void ArrayListHandler()throws SQLException{
     3         QueryRunner qr = new QueryRunner();
     4         String sql = "select* from book ";
     5         List<Object[]> objects= qr.query(con,sql, new ArrayListHandler());
     6         for (Object[] object : objects) {
     7             for (Object o : object) {
     8                 System.out.print(o+"	");
     9             }
    10             System.out.println("
    ");
    11         }
    12     }

    4.3  BeanHandler与BeanListHandler查询

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

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

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

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

    4.4 ColumnListHandler与ScalarHandler查询

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

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

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

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

    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)+"	");
                }
                System.out.println();
            }
        }

  • 相关阅读:
    常见http状态码
    通过adb shell命令查看内存,CPU,启动时间,电量等信息
    Jmeter获取数据库数据参数化
    jmeter链接mysql数据库,sql数据库,oracle数据库
    appium 隐藏键盘
    python编码
    python:打印所有文件名字的扩展名
    python中字符串常见操作
    python中的字符串存储及切片介绍
    Ubuntu14.04安装部署bugzilla5.0.3
  • 原文地址:https://www.cnblogs.com/liyushan/p/11351537.html
Copyright © 2020-2023  润新知