Dbutil 的使用示例

DBUtils知识:

http://blog.csdn.net/farreaching665/article/details/7101132

 

package

 cn.lining.test;   
  
import  java.sql.Connection;   
import  java.sql.DriverManager;   
import  java.sql.SQLException;   
import  java.util.List;   
import  java.util.Map;   
  
import  org.apache.commons.dbutils.DbUtils;   
import  org.apache.commons.dbutils.QueryRunner;   
import  org.apache.commons.dbutils.handlers.ArrayHandler;   
import  org.apache.commons.dbutils.handlers.ArrayListHandler;   
import  org.apache.commons.dbutils.handlers.BeanHandler;   
import  org.apache.commons.dbutils.handlers.BeanListHandler;   
import  org.apache.commons.dbutils.handlers.ColumnListHandler;   
import  org.apache.commons.dbutils.handlers.KeyedHandler;   
import  org.apache.commons.dbutils.handlers.MapHandler;   
import  org.apache.commons.dbutils.handlers.MapListHandler;   
import  org.apache.commons.dbutils.handlers.ScalarHandler;   
  
public   class  test {   
  @SuppressWarnings ( "unchecked" )   
  public   static   void  main(String[] args)  throws  ClassNotFoundException {   
  
  UserField userField =  new  UserField();   
  
  Connection conn =  null ;   
  String jdbcURL =  "jdbc:mysql://localhost:3306/macaw4" ;   
  String jdbcDriver =  "com.mysql.jdbc.Driver" ;   
   try  {   
   DbUtils.loadDriver(jdbcDriver);   
   conn = DriverManager.getConnection(jdbcURL,  "root""root" );   
   conn.setAutoCommit( false ); //关闭自动提交    
   QueryRunner qRunner =  new  QueryRunner();   
  
    // 以下部分代码采用MapHandler存储方式查询    
   System.out.println( "***Using MapHandler***" );   
   Map map = (Map) qRunner.query(conn,   
      "select * from mc_user_field where id = ?" ,   
      new  MapHandler(),  new  Object[] {  "5"  });   
  
   System.out.println( "id ------------- name " );   
   System.out.println(map.get( "id" ) +  "  ------------- "   
     + map.get( "name" ));   
  
    // 以下部分代码采用MapListHandler存储方式查询    
   System.out.println( "***Using MapListHandler***" );   
   List lMap = (List) qRunner.query(conn,   
      "select * from mc_user_field"new  MapListHandler());   
  
   System.out.println( "id ------------- name " );   
    for  ( int  i =  0 ; i < lMap.size(); i++) {   
    Map vals = (Map) lMap.get(i);   
    System.out.println(vals.get( "id" ) +  "  ------------- "   
      + vals.get( "name" ));   
   }   
  
    // 以下部分代码采用BeanHandler存储方式查询    
   System.out.println( "***Using BeanHandler***" );   
   userField = (UserField) qRunner.query(conn,   
      "select * from mc_user_field where id = ?" ,   
      new  BeanHandler(Class.forName( "cn.lining.test.UserField" )),   
      new  Object[] {  "5"  });   
   System.out.println( "id ------------- name " );   
   System.out.println(userField.getId() +  "  ------------- "   
     + userField.getName());   
  
    // 以下部分代码采用BeanListHandler存储方式查询    
   System.out.println( "***Using BeanListHandler***" );   
   List lBean = (List) qRunner.query(conn,   
      "select * from mc_user_field"new  BeanListHandler(Class   
       .forName( "cn.lining.test.UserField" )));   
   System.out.println( "id ------------- name " );   
    for  ( int  i =  0 ; i < lBean.size(); i++) {   
    userField = (UserField) lBean.get(i);   
    System.out.println(userField.getId() +  "  ------------- "   
      + userField.getName());   
   }   
  
    // 以下部分代码采用ArrayHandler存储方式查询    
   System.out.println( "***Using ArrayHandler***" );   
   Object[] array = (Object[]) qRunner.query(conn,   
      "select * from mc_user_field where id = ?" ,   
      new  ArrayHandler(),  new  Object[] {  "5"  });   
  
   System.out.println( "id ------------- name " );   
   System.out.println(array[ 0 ].toString() +  "  ------------- "   
     + array[ 1 ].toString());   
  
    // 以下部分代码采用ArrayListHandler存储方式查询    
   System.out.println( "***Using ArrayListHandler***" );   
   List lArray = (List) qRunner.query(conn,   
      "select * from mc_user_field"new  ArrayListHandler());   
   System.out.println( "id ------------- name " );   
    for  ( int  i =  0 ; i < lArray.size(); i++) {   
    Object[] var = (Object[]) lArray.get(i);   
    System.out.println(var[ 0 ].toString() +  "  ------------- "   
      + var[ 1 ].toString());   
   }   
  
    // 以下部分代码采用ColumnListHandler存储方式查询指定列    
   System.out.println( "***Using ColumnListHandler***" );   
   List lName = (List) qRunner.query(conn,   
      "select * from mc_user_field where id = ?" ,   
      new  ColumnListHandler( "name" ),  new  Object[] {  "5"  });   
   System.out.println( "name " );   
    for  ( int  i =  0 ; i < lName.size(); i++) {   
    String name = (String) lName.get(i);   
    System.out.println(name);   
   }   
  
    // 以下部分代码采用ScalarHandler存储方式查询    
   System.out.println( "***Using ScalarHandler***" );   
   String name = (String) qRunner.query(conn,   
      "select * from mc_user_field where id = ?" ,   
      new  ScalarHandler( "name" ),  new  Object[] {  "5"  });   
  
   System.out.println( "name " );   
   System.out.println(name);   
  
    // 以下部分代码采用KeyedHandler存储方式查询    
   System.out.println( "***Using KeyedHandler***" );   
   Map<String, Map> map2 = (Map<String, Map>) qRunner.query(conn,   
      "select * from mc_user_field"new  KeyedHandler( "name" ));   
  
   System.out.println( "name: field_name2" );   
   Map vals = (Map) map2.get( "field_name2" );   
   System.out.println(vals.get( "id" ) +  "  "  + vals.get( "name" ) +  "  "   
     + vals.get( "type" ));   
  
    // 以下部分代码插入一条数据    
   System.out.println( "***Insert begin***" );   
   userField =  new  UserField();   
   qRunner.update(conn,  "insert into mc_user_field ("   
     +  "id,name,type,sort_order,required,visible)"   
     +  "values (?,?,?,?,?,?)"new  Object[] { userField.getId(),   
     userField.getName(), userField.getType(),   
     userField.getSort_order(), userField.getRequired(),   
     userField.getVisible() });   
   System.out.println( "***update end***" );   
  
    // 以下部分代码更新一条数据    
   System.out.println( "***update begin***" );   
   userField =  new  UserField();   
   qRunner.update(conn,  "update mc_user_field set "   
     +  "name = ?,type = ?,sort_order = ?,"   
     +  "required = ?,visible = ?"  +  "where id = ?" ,   
      new  Object[] { userField.getName(), userField.getType(),   
       userField.getSort_order(), userField.getRequired(),   
       userField.getVisible(), userField.getId() });   
   System.out.println( "***update end***" );   
  
    // 以下部分代码删除一条数据    
   System.out.println( "***delete begin***" );   
   userField =  new  UserField();   
   qRunner.update(conn,  "delete from mc_user_field where id2 = ?" ,   
      new  Object[] { userField.getId() });   
   System.out.println( "***delete end***" );   
  
  }  catch  (SQLException ex) {   
   ex.printStackTrace();   
    try  {   
    System.out.println( "***rollback begin***" );   
    DbUtils.rollback(conn);   
    System.out.println( "***rollback end***" );   
   }  catch  (SQLException e) {   
    e.printStackTrace();   
   }   
  }  finally  {   
   DbUtils.closeQuietly(conn);   
  }   
  
 }   
}   
  • ArrayHandler:把结果集中的第一行数据转成对象数组。
  • ArrayListHandler:把结果集中的每一行数据都转成一个对象数组,再存放到List中。
  • BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
  • BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。
  • ColumnListHandler:将结果集中某一列的数据存放到List中。
  •  KeyedHandler:将结果集中的每一行数据都封装到一个Map里,然后再根据指定的key把每个Map再存放到一个Map里。
  •  MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。
  •  MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List。
  •  ScalarHandler:将结果集中某一条记录的其中某一列的数据存成Object。

  • 注:本文转自http://seara520.blog.163.com/blog/static/1681276982010616114728453/
  • 你可能感兴趣的:(util)