• DButils


    DBUtils

    什么是DBUtils

      DBUtils是一个实用小巧的工具,封装了JDBC.简化了JDBC的操作.
      对于数据库的读操作,只需要知道sql语句即可.
      DBUtils会将查询的结果集以指定的方式封装起来,比如List, javaBean等.同时支持数据源技术.使用时需要引入DButils的jar包:
    

    点我获取:) 密码:f6l6

    DBUtils的API

    QueryRunner对象

    • 1.对象描述
      该对象用来提供执行增删改查的方法.

    • 2.方法
      query() 查询方法
      update() 增删改方法

    ResultSetHandler对象(接口)

    • 1.对象描述
      用来对查询的结果集进行封装
    • 2.该接口常用实现类
      • ArrayHandler
        适合结果集是一行数据,该实现类会将这行数据封装成一个数组对象,元素即为查询出来的字段值.
      • ArrayListHandler
        适合结果集是多行数据,会将这些数据封装成一个List集合,该集合的元素是数组,数组即为每行数据
      • ColumnListHandler
        适合结果集是多行单列,会将这些数据封装到一个List集合
      • KeyedHandler
        适合取多条数据,会将每条数据封装成一个map集合,最后再把这些map集合封装成大map中
      • MapHandler
        适合结果集是一条数据,封装到map集合中
      • MapListHandler
        适合取多条数据,会将每条数据封装成一个map集合,最后再把这些map集合封装成List中
      • ScalarHandler
        适合取单行单列数据,比如聚合函数
      • BeanHandler
        适合取单行数据,将数据封装成对象
      • BeanListHandler
        适合取多行数据,将每行数据封装成一个对象,再把这些对象封装成一个List集合

    举个栗子BeanListHandler

    public class Demo {
        public static void main(String[] args) throws SQLException {
            //执行查询
            //创建QueryRunner对象
            QueryRunner queryRunner = new QueryRunner();
            Connection connection = JDBCUtil.getConnection();      //此方法是自定义实现的参考连接池那篇随笔
            //查询多行,并封装成对象,再放进List集合中
            List<Employee> list = queryRunner.query(connection, "select * from emp", new BeanListHandler<Employee>(Employee.class));
            
                for(Enployee e:list){
                   System.out.println(e);
                }
          }
    }
    

    栗子BeanHandler

                 //执行查询
                 //创建QueryRunner对象
            QueryRunner queryRunner = new QueryRunner();
            Connection connection = JDBCUtil.getConnection();
                //查询一行,封装成对象
            Employee emp = queryRunner.query(connection, "select * from emp where e_id = ?", new BeanHandler<Employee>(Employee.class), 1);  //此处的1是where语句等号后面的?,做参数
    
    

    栗子KeyedHandler

            //执行查询
            //创建QueryRunner对象
            QueryRunner queryRunner = new QueryRunner();
            Connection connection = JDBCUtil.getConnection();
            Map<Object, Map<String, Object>> map = queryRunner.query(connection, "select * from emp", new KeyedHandler(2));
          //遍历map集合
            Set<Map.Entry<Object, Map<String, Object>>> set = map.entrySet();
            for(Map.Entry<Object, Map<String, Object>> entry : set){
             Object bigKey = entry.getKey();
               Map<String, Object> smallMap = entry.getValue();
                System.out.println(bigKey);     //关羽
               Set<String> smallSet = smallMap.keySet();
                for(String smallKey : smallSet) {
                    Object value = smallMap.get(smallKey);
                    System.out.println(smallKey + ":" + value);
                }
           }
    

    栗子ScalarHandler

             //执行查询
            //创建QueryRunner对象
            QueryRunner queryRunner = new QueryRunner();
            Connection connection = JDBCUtil.getConnection();
            //聚合函数
           long num = (long) queryRunner.query(connection, "select count(*) from emp", new ScalarHandler());
            System.out.println(num);
    

    栗子:

            //执行查询
            //创建QueryRunner对象
            QueryRunner queryRunner = new QueryRunner();
            Connection connection = JDBCUtil.getConnection();
          //增
            Employee employee = new Employee();
            employee.setE_id(18);
            employee.setE_name("吕布");
            employee.setE_salary(10000.0);
            employee.setE_did(1);
            employee.setHiretime(new Date());
            employee.setE_job("staff");
    
    
            Object[] param = {employee.getE_id(), employee.getE_name(), employee.getE_salary(), employee.getE_job(), employee.getE_did(), employee.getHiretime()};
            int row = queryRunner.update(connection, "delete from emp where e_name = ?", employee.getE_name());
            System.out.println(row);
    
    
            JDBCUtil.close(connection);
    
    
    频频回头的人注定走不了远路。
  • 相关阅读:
    为什么 Redis 重启后没有正确恢复之前的内存数据
    Redis的启动过程
    Redis 如何保持和MySQL数据一致
    redis集群节点宕机
    mysql 数据库管理
    mysqladmin 命令详解
    MySQL 编译安装
    mysql 数据库简介
    xtrabackup安装部署(二)
    Non-negative Partial Sums(单调队列)
  • 原文地址:https://www.cnblogs.com/CHENFANgY/p/13051008.html
Copyright © 2020-2023  润新知