关闭

Dbutils 详解

373人阅读 评论(0) 收藏 举报
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
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1574542次
    • 积分:15388
    • 等级:
    • 排名:第700名
    • 原创:234篇
    • 转载:323篇
    • 译文:0篇
    • 评论:189条
    文章分类
    最新评论