Dbutils 详解

Common Dbutils是操作数据库的组件,对传统操作数据库的类进行二 次封装,可以把结果集转化成List。
 
 
 DBUtils包括3个包:
 org.apache.commons.dbutils 
 org.apache.commons.dbutils.handlers 
 org.apache.commons.dbutils.wrappers
 DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。
  
 org.apache.commons.dbutils
 DbUtils 关闭链接等操作
 QueryRunner 进行查询的操作
  
 org.apache.commons.dbutils.handlers
 ArrayHandler :将ResultSet中第一行的数据转化成对象数组
 ArrayListHandler将ResultSet中所有的数据转化成List,List中存放的是 Object[]
 BeanHandler :将ResultSet中第一行的数据转化成类对象
 BeanListHandler :将ResultSet中所有的数据转化成List,List中存放的是类对象
 ColumnListHandler :将ResultSet中某一列的数据存成List,List中存放的是 Object对象
 KeyedHandler :将ResultSet中存成映射,key为某一列对应为Map。Map中存放的是数 据
 MapHandler :将ResultSet中第一行的数据存成Map映射
 MapListHandler :将ResultSet中所有的数据存成List。List中存放的是Map
 ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object
  
 org.apache.commons.dbutils.wrappers
 SqlNullCheckedResultSet :对ResultSet进行操作,改版里面的值
 StringTrimmedResultSet :去除ResultSet中中字段的左右空格。Trim()
  
 
 主要方法:
 
  
 
 DbUtils类:启动类
 
 ResultSetHandler接口:转换类型接口
 
 MapListHandler类:实现类,把记录转化成List
 
 BeanListHandler类:实现类,把记录转化成List,使记录为JavaBean类型的对象
 
 Qrery Runner类:执行SQL语句的类
 
  
 
 建立三个Java文件
 
 命名为BeanListExample.java
 
 Guestbook.java
 
 MapListExample.java
  
 
 源码:
 
 BeanListExample.java
 
  
 
 Code
 
package    com.sy;
 
 
import    org.apache.commons.dbutils.DbUtils;
 
import    org.apache.commons.dbutils.QueryRunner;
 
import    org.apache.commons.dbutils.handlers.BeanListHandler;
 
import    java.sql.Connection;
 
import    java.sql.DriverManager;
 
import    java.sql.SQLException;
 
import    java.util.List;
 
 
public       class    BeanListExample    {
     
 public   static   void  main(String[] args)  {
         Connection conn 
 =   null ;
         String url 
 =   " jdbc:mysql://localhost:3306/people " ;
         String jdbcDriver 
 =   " com.mysql.jdbc.Driver " ;
         String user 
 =   " root " ;
         String password 
 =   " hicc " ;
 
         DbUtils.loadDriver(jdbcDriver);
         
 try   {
             conn 
 =  DriverManager.getConnection(url, user, password);
             QueryRunner qr 
 =   new  QueryRunner();
             List results 
 =  (List) qr.query(conn,  " select id,name from guestbook "  new BeanListHandler(Guestbook. class ));
             
 for  ( int  i  =   0 ; i  <  results.size(); i ++  {
                 Guestbook gb 
 =  (Guestbook) results.get(i);
                 System.out.println(
 " id: "   +  gb.getId()  +   " ,name: "   +  gb.getName());
             }
 

         }
 
  catch  (SQLException e)  {
             e.printStackTrace();
         }
 
  finally   {
             DbUtils.closeQuietly(conn);
         }
 

     }
 

 }
 

  
 
 Guestbook.java
 
  
 
  
 
 Code
 
package    com.sy;
 
 
public       class    Guestbook    {
     
 private  Integer id;
     
 private  String name;
 
     
 public  Integer getId()  {
         
 return  id;
     }
 

 
     
 public   void  setId(Integer id)  {
         
 this .id  =  id;
     }
 

 
     
 public  String getName()  {
         
 return  name;
     }
 

 
     
 public   void  setName(String name)  {
         
 this .name  =  name;
     }
 

 }
 

  
 
 MapListExample.java
 
  
 
 Code
 
package    com.sy;
 
 
import    org.apache.commons.dbutils.DbUtils;
 
import    org.apache.commons.dbutils.QueryRunner;
 
import    org.apache.commons.dbutils.handlers.MapListHandler;
 
 
import    java.sql.Connection;
 
import    java.sql.DriverManager;
 
import    java.sql.SQLException;
 
 
import    java.util.List;
 
import    java.util.Map;
 
 
public       class    MapListExample    {
     
 public   static   void  main(String[] args)  {
         Connection conn 
 =   null ;
         String url 
 =   " jdbc:mysql://localhost:3306/people " ;
         String jdbcDriver 
 =   " com.mysql.jdbc.Driver " ;
         String user 
 =   " root " ;
         String password 
 =   " hicc " ;
 
         DbUtils.loadDriver(jdbcDriver);
         
 try   {
             conn 
 =  DriverManager.getConnection(url, user, password);
             QueryRunner qr 
 =   new  QueryRunner();
             List results 
 =  (List) qr.query(conn,  " select id,name from guestmessage "  new  MapListHandler());
             
 for  ( int  i  =   0 ; i  <  results.size(); i ++  {
                 Map map 
 =  (Map) results.get(i);
                 System.out.println(
 " id: "   +  map.get( " id "  +   " ,name: "   +  map.get( " name " ));
             }
 

         }
 
  catch  (SQLException e)  {
             e.printStackTrace();
         }
 
  finally   {
             DbUtils.closeQuietly(conn);
         }
 

     }
 

 }
 

  
 
 使用组建好需要添加commons
  -   dbutils   -   1.1   .jar和mysql   -   connector   -   java   -   5.1   .   6   -   bin.jar 两个jar包。
 
  
 
 配置完毕!!!
 
  
  //   另一种方法
 
//   使用dbutils1.0版本  
 

 
import    java.util.   *   ;
 
import    java.util.logging.   *   ;
 
import    java.sql.   *   ;
 
import    org.apache.commons.dbutils.   *   ;
 
import    org.apache.commons.dbutils.handlers.   *   ;
 
 
public       class    TestDBUnits    {
  
  
 public   static   void  main(String[]args)  throws  Exception  {
   TestDBUnits test 
 =   new  TestDBUnits();
   
   
 for ( int  i  =   0  ; i  <   1  ; i ++  {   
    test.testQuery1();
    test.testQuery2();
    test.testUpdate();
   }
 

  }
 

  
  
 public   void  testQuery1() {
   
 try   {
    QueryRunner qr 
 =   new  QueryRunner() ;
    ResultSetHandler rsh 
 =   new  ArrayListHandler();   
    String strsql 
 =   " select * from test1 " ;   
    ArrayList result 
 =  (ArrayList)qr.query(getConnection() ,strsql ,rsh);
    
 // System.out.print(""); 
 
  } 
  catch (Exception ex)  {
    ex.printStackTrace(System.out);
   }
 

  }
 

  
  
 public   void  testQuery2() {
   
 try   {
    QueryRunner qr 
 =   new  QueryRunner() ;
    ResultSetHandler rsh 
 =   new  MapListHandler();   
    String strsql 
 =   " select * from test1 " ;   
    ArrayList result 
 =  (ArrayList)qr.query(getConnection() ,strsql ,rsh);
    
 for ( int  i  =   0  ; i  <  result.size() ; i ++  {
     Map map 
 =  (Map)result.get(i);
     
 // System.out.println(map);     
 
   } 

    
 // System.out.print(""); 
 
  } 
  catch (Exception ex)  {
    ex.printStackTrace(System.out);
   }
 

  }
 

  
  
 public   void  testUpdate() {
   
 try   {
    QueryRunner qr 
 =   new  QueryRunner() ;
    ResultSetHandler rsh 
 =   new  ArrayListHandler();
    String strsql 
 =   " insert test1(page ,writable ,content)values('ttt','ttt','faskldfjklasdjklfjasdklj') " ;
    qr.update(getConnection() ,strsql);
    
 // System.out.print(""); 
 
  } 
  catch (Exception ex)  {
    ex.printStackTrace(System.out);
   }
 

  }
 

  
  
 private   Connection getConnection()  throws  InstantiationException,
    IllegalAccessException, ClassNotFoundException, SQLException 
 {
   
   String strDriver 
 =   " org.gjt.mm.mysql.Driver " ;
   String strUrl 
 =   " jdbc:mysql://localhost:3306/test " ;
   String strUser 
 =   " root " ;
   String strPass 
 =   "" ;
    
   Class.forName(strDriver).newInstance();  
   
 return  DriverManager.getConnection(strUrl, strUser, strPass);
  }
 

 }
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值