`

[转载]Dbutil 的使用示例

    博客分类:
  • Java
 
阅读更多

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/
  • 分享到:
    评论

    相关推荐

      Dbutil使用jar包

      在使用DbUtil时,我们通常会配合PreparedStatement来执行SQL语句,这不仅可以提高代码的安全性,防止SQL注入攻击,还能提升性能,因为数据库可以预编译SQL语句。 以下是一些DbUtil的关键知识点: 1. **数据库连接...

      DBUtil使用于javaWeb连接池c3p0

      下面我们将详细探讨`DBUtil` 的使用方法以及C3P0连接池的工作原理。 1. **C3P0简介** C3P0是由Miguel Grinberg创建的一个开源项目,它提供了数据库连接池的实现。C3P0的主要功能包括:自动管理数据库连接的创建和...

      dbUtil使用 用Apache Commons DBUtil

      如示例中所示,使用了 DBCP (`BasicDataSource`) 作为数据源实现,并通过 Spring 进行管理。`DbUtilsTemplate` 类中的 `dataSource` 属性负责接收来自 Spring 的数据源实例。 ```java public class DbUtilsTemplate...

      DbUtil和tomcat数据源配置实例

      在Java Web开发中,数据库连接管理是一个至关重要的环节。`DbUtil`是一个常见的数据库操作工具类,用于简化数据库连接的创建、关闭等操作,而...通过实际操作,你可以更好地掌握`DbUtil`和Tomcat数据源的配置与使用。

      DBUtil工具类

      5. 对于复杂的SQL操作,DBUtil可能无法满足需求,此时应考虑使用ORM框架,如Hibernate或MyBatis。 综上所述,DBUtil工具类是提高开发效率、简化数据库操作的重要工具。在实际开发中,根据项目需求选择合适的DBUtil...

      DBUtil工具类jar包

      在提供的压缩包文件"DBUtil"中,可能包含了DBUtil工具类的源代码、相关的配置文件(如数据库连接配置)以及使用示例。学习这个jar包,可以深入了解其内部实现原理,如何集成到自己的项目中,以及如何自定义配置以...

      DBUtil的使用.docx

      以下是一些基于DBUtil的示例代码,展示了如何使用QueryRunner执行基本的CRUD操作: ```java import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; public ...

      DButil 封装 包括模糊查询 分页Count 普通增删改查方法

      8. **使用示例和源码分析**: 提供的部分方法使用说明和源码可以帮助开发者快速理解和使用DButil。通过阅读源码,可以了解其实现原理,学习如何设计和实现类似的工具类。 在实际应用中,DButil可以极大地方便开发...

      Laravel开发-dbutil

      4. **缓存策略**:为了提高性能,`dbutil`可能集成数据库查询结果的缓存机制,如使用Redis或Memcached存储查询结果,减少重复的数据库访问。 5. **数据迁移和同步**:在多环境部署时,`dbutil`可能包含数据迁移和...

      dbutil工具类使用demo

      在这个“dbutil工具类使用demo”中,我们将探讨如何利用dbutil(可能是Apache Commons DbUtils库)和Maven Druid数据源来高效、安全地执行数据库交互。DbUtils是一个小型且实用的库,它简化了JDBC代码,提供了基本的...

      DBUtil——连接SQL (JDBC使用)

      本教程将围绕"DBUtil",一个简单的JDBC工具类,来介绍如何使用配置文件进行SQL连接和数据库的基本操作。这个工具类适用于初学者学习数据库连接管理。 首先,我们来看"db.properties"文件,这是用来存储数据库连接...

      DbUtil的介绍使用.docx

      在提供的代码示例中,可以看到如何使用 DbUtil 进行数据库查询: 首先,导入必要的类,如 `DbUtils`、`QueryRunner` 和 `BeanListHandler`。然后,加载数据库驱动(这里使用的是 MySQL 驱动),创建 `QueryRunner` ...

      DBUtil(ASP。NET数据库连接工具类)

      例如,一个简单的使用DBUtil执行SQL插入语句的示例可能是: ```csharp using (var dbUtil = new DBUtil()) { string sql = "INSERT INTO Users (Username, Password) VALUES (@Username, @Password)"; dbUtil....

      DBUtil

      NULL 博文链接:https://hdzhangyanfeng.iteye.com/blog/2047944

      DButil的jar

      使用时,只需将这个JAR文件添加到项目的类路径中,就可以通过导入相关的类和方法来使用DBUtil的功能。 总的来说,DBUtil是Java开发中一个实用的数据库操作工具,它通过封装JDBC,使得数据库操作更加便捷,同时减少...

      DBUtil.java类

      DBUtil的类,在WEB开发当中有许多项目都需要用它,可以不用重复写,这样很方便

      韩顺平SqlHelper,DBUtil工具类

      在提供的"util"文件夹中,可能包含了SqlHelper和DBUtil的实现源码,以及可能的示例或测试用例。开发者可以通过阅读这些源码,理解其内部工作原理,以及如何根据项目需求进行定制或扩展。 总结来说,韩顺平SqlHelper...

      commons-dbutil帮助文档

      commons-dbutil帮助文档

      通用数据库分页 扩展dbutil (附代码下载)

      5. **示例代码**: ```java public List&lt;User&gt; paginate(int pageNum, int pageSize) { String sql = "SELECT * FROM users LIMIT ?, ?"; Object[] params = { (pageNum - 1) * pageSize, pageSize }; return ...

      DBUtil包连接池

      DBUtil类内部包含有连接池创建和连接池的关闭,下载后记得修改URL

    Global site tag (gtag.js) - Google Analytics