zoukankan      html  css  js  c++  java
  • DBUtils

    1.JDBC的问题:

    1、操作过程复杂,代码操作一个模式,大量的重复。
    2、结果集难以处理,需要将拿到的ResultSet一个一个转成JavaBean,后来形成List,太麻烦了。
    3、到处都强制检查SQLException,影响代码的美观和可读性。

    2.dbutils API

    ------------------------------------
    包org.apache.commons.dbutils 
            DbUtils是一个为简化JDBC操作的小类库。
    接口摘要
    ResultSetHandler 将ResultSet转换为别的对象的工具。
    RowProcessor 将ResultSet行转换为别的对象的工具。 
    类摘要
    BasicRowProcessor RowProcessor接口的基本实现类。 
    BeanProcessor BeanProcessor匹配列明到Bean属性名,并转换结果集列到Bean对象的属性中。
    DbUtils 一个JDBC辅助工具集合。 
    ProxyFactory 产生JDBC接口的代理实现。 
    QueryLoader 属性文件加载器,主要用于加载属性文件中的 SQL 到内存中。 
    QueryRunner 使用可插拔的策略执行SQL查询并处理结果集。
    ResultSetIterator 包装结果集为一个迭代器。 
      
    ------------------------------------
    包org.apache.commons.dbutils.handlers 
            ResultSetHandler接口的实现类
    类摘要
    AbstractListHandler 将ResultSet转为List的抽象类
    ArrayHandler 将ResultSet转为一个Object[]的ResultSetHandler实现类
    ArrayListHandler 将ResultSet转换为List<Object[]>的ResultSetHandler实现类
    BeanHandler 将ResultSet行转换为一个JavaBean的ResultSetHandler实现类
    BeanListHandler 将ResultSet转换为List<JavaBean>的ResultSetHandler实现类
    ColumnListHandler 将ResultSet的一个列转换为List<Object>的ResultSetHandler实现类
    KeyedHandler 将ResultSet转换为Map<Map>的ResultSetHandler实现类
    MapHandler 将ResultSet的首行转换为一个Map的ResultSetHandler实现类
    MapListHandler 将ResultSet转换为List<Map>的ResultSetHandler实现类
    ScalarHandler 将ResultSet的一个列到一个对象。
     
    ------------------------------------
    包org.apache.commons.dbutils.wrappers 
            添加java.sql类中功能包装类。
    类摘要
    SqlNullCheckedResultSet 在每个getXXX方法上检查SQL NULL值的ResultSet包装类。
    StringTrimmedResultSet 取出结果集中字符串左右空格的ResultSet包装类。

    3.DEMO

       public static void test_insert() throws SQLException { 
                    System.out.println("-------------test_insert()-------------"); 
                    //创建连接 ,ConnTools为自己定义的connection工具
                    Connection conn = ConnTools.makeConnection(); 
                    //创建SQL执行工具 
                    QueryRunner qRunner = new QueryRunner(); 
                    //执行SQL插入 
                    int n = qRunner.update(conn, "insert into user(name,pswd) values('iii','iii')"); 
                    System.out.println("成功插入" + n + "条数据!"); 
                    //关闭数据库连接 
                    DbUtils.closeQuietly(conn); 
            } 
    
            public static void test_find() throws SQLException { 
                    System.out.println("-------------test_find()-------------"); 
                    //创建连接 
                    Connection conn = ConnTools.makeConnection(); 
                    //创建SQL执行工具 
                    QueryRunner qRunner = new QueryRunner(); 
                    //执行SQL查询,并获取结果 
                    List<User> list = (List<User>) qRunner.query(conn, "select id,name,pswd from user", new BeanListHandler(User.class)); 
                    //输出查询结果 
                    for (User user : list) { 
                            System.out.println(user); 
                    } 
                    //关闭数据库连接 
                    DbUtils.closeQuietly(conn); 
            } 
    

      

  • 相关阅读:
    Wireshark下载地址
    WireShark过滤语法
    Centos7 虚拟机安装增强功能
    更改切换热键
    kali安装后中文乱码
    C#中关于WebBrowser的一些细节设置
    方法间多参数传递
    绑定checkedComboBox
    反射方法调用例子
    gridView 删除一行后自动定位到指定行
  • 原文地址:https://www.cnblogs.com/mywy/p/5044791.html
Copyright © 2011-2022 走看看