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);
 }
 

}
 

 

转自:http://www.blogjava.net/b47248054/articles/326712.html

你可能感兴趣的:(apache,DbUtils)