zoukankan      html  css  js  c++  java
  • dbUtils 工具类介绍

    1. 导包: commons-dbutils.jar
    2. 核心类: QueryRunner
    3. 常用方法:
    // 执行增,删,改语句, 返回影响的行数
        int update(String sql,Object... params);
    
    // 执行增, 删, 改语句, 但是需要调用者提供 Connection 对象, 支持事务.
        int update(Connection ,String sql, Object... params);
    
    // 执行查询方法
    // 返回值类型为 T, 因为 ResultSetHandler 中的 handle 方法会把 ResultSet 结果集转换为 T 类型
        T query(String sql, ResultSetHandler rsh, Object...params);
    
    // 执行查询方法, 但是需要调用者提供 Connection 对象, 支持事务
        T query(Connection con, String sql, ResultSetHandler rsh, Object... params);
    

    4. ResultSetHandler 接口的实现类

    • 单行结果: BeanHandler(), 构造器需要一个 Class 类型的参数, 用来把一行结果转换成指定类型的 javaBean 对象;
    • 多行结果: BeanListHandler(), 构造器需要一个 Class 类型的参数, 用来把一行结果转换成一个 javaBean,
      若是多行结果, 就转换成 List 对象, 即多个 javaBean;
    • 单行结果: MapHandler(), 把一行结果转换成 Map;
    • 多行结果: MapListHandler(), 把一行记录转换成一个 Map, 若是多行, 就是多个 Map, 即 List;
    • 单行单列: ScalarHandler(), 结果集是单行单列的, 返回一个 Object.
      通常用于 SELECT count(*) FROM t_stu;
    单行记录

    Map 集合

    {sid:1001,sname:zhangsan,age:22,gender:male}

    // 示例
    
        // BeanHandler()  和 MapHandler()
        public void fun() throws Exception{
            QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());
    
            String sql = "SELECT * FROM t_stu WHERE sid=?";
    
            Object[] params = {1001};
    
            // BeanHandler()
            Stu stu = qr.query(sql,new BeanHandler<Stu>(stu.class),params);
    
            System.out.println(stu);
    
            // MapHandler()
            Map map = qr.query(sql,new MapHandler(),params);
            System.out.println(map);
        }
    
        // BeanListHandler() 和 MapListHandler()
        public void fun1() throws SQLException{
            QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());
    
            String sql = "SELECT * FROM t_stu";
    
            // BeanListHandler()
            List<Stu> stuList = qr.query(sql, new BeanListHandler<Stu>(Stu.class));
            System.out.println(stuList);
    
            // MapListHandler()
            List<Map<String,Object>> mapList = qr.query(sql, new MapListHandler());
            Sytem.out.println(mapList);
        }
    
        // ScalarHandler()
        public void fun2() throws SQLException{
            QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());
    
            String sql = "SELECT COUNT(*) FROM t_stu";
    
            // 此处 obj 类型可能为 Integer, Long, BigInteger
            // 但是这三种类型有共同的父类 Number
            Number obj = (Number)qr.query(sql,new ScalarHandler());
    
            System.out.println(obj);
        }
    

    参考资料:

  • 相关阅读:
    在 Ubuntu 14.04 Chrome中安装Flash Player(转)
    Tomcat 域名绑定多个Host配置要点
    IIS7.5 与 Tomcat 8整合
    笔记本外接显示器闪屏
    NetworkManager 命令配置nmcli注意
    CentOS 7 目录布局变化
    CentOS 7 Crontab
    jquery的ajax post 方法传值到后台,无法通过HttpServletRequest得到
    没有添加spring mvc 默认依赖包产生的错误
    tcp总结
  • 原文地址:https://www.cnblogs.com/linkworld/p/7625769.html
Copyright © 2011-2022 走看看