CommonDbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成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类型的对象
QreryRunner类:执行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){
Connectionconn= null ;
Stringurl= " jdbc:mysql://localhost:3306/people" ;
StringjdbcDriver= " com.mysql.jdbc.Driver" ;
Stringuser= " root " ;
Stringpassword= " hicc " ;
DbUtils.loadDriver(jdbcDriver);
try {
conn= DriverManager.getConnection(url,user,password);
QueryRunnerqr= new QueryRunner();
Listresults= (List)qr.query(conn," selectid,namefromguestbook" ,new BeanListHandler(Guestbook.class ));
for ( int i = 0 ;i < results.size();i++ ) {
Guestbookgb= (Guestbook)results.get(i);
System.out.println(" id: " + gb.getId()+ " ,name: " + gb.getName());
}
} catch (SQLExceptione) {
e.printStackTrace();
} finally {
DbUtils.closeQuietly(conn);
}
}
}
Guestbook.java
Code
package com.sy;
public class Guestbook{
private Integerid;
private Stringname;
public IntegergetId(){
return id;
}
public void setId(Integerid){
this .id= id;
}
public StringgetName(){
return name;
}
public void setName(Stringname){
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){
Connectionconn= null ;
Stringurl= " jdbc:mysql://localhost:3306/people" ;
StringjdbcDriver= " com.mysql.jdbc.Driver" ;
Stringuser= " root " ;
Stringpassword= " hicc " ;
DbUtils.loadDriver(jdbcDriver);
try {
conn= DriverManager.getConnection(url,user,password);
QueryRunnerqr= new QueryRunner();
Listresults= (List)qr.query(conn," selectid,namefromguestmessage" ,new MapListHandler());
for ( int i = 0 ;i < results.size();i++ ) {
Mapmap= (Map)results.get(i);
System.out.println(" id: " + map.get( " id " ) + " ,name: " + map.get( " name " ));
}
} catch (SQLExceptione) {
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{
TestDBUnitstest= new TestDBUnits();
for ( int i = 0 ;i< 1 ;i ++ ) {
test.testQuery1();
test.testQuery2();
test.testUpdate();
}
}
public void testQuery1(){
try {
QueryRunnerqr= new QueryRunner();
ResultSetHandlerrsh= new ArrayListHandler();
Stringstrsql= " select*fromtest1" ;
ArrayListresult= (ArrayList)qr.query(getConnection(),strsql,rsh);
// System.out.print("");
} catch (Exceptionex){
ex.printStackTrace(System.out);
}
}
public void testQuery2(){
try {
QueryRunnerqr= new QueryRunner();
ResultSetHandlerrsh= new MapListHandler();
Stringstrsql= " select*fromtest1" ;
ArrayListresult= (ArrayList)qr.query(getConnection(),strsql,rsh);
for ( int i = 0 ;i< result.size();i++ ) {
Mapmap= (Map)result.get(i);
// System.out.println(map);
}
// System.out.print("");
} catch (Exceptionex){
ex.printStackTrace(System.out);
}
}
public void testUpdate(){
try {
QueryRunnerqr= new QueryRunner();
ResultSetHandlerrsh= new ArrayListHandler();
Stringstrsql= " inserttest1(page,writable,content)values('ttt','ttt','faskldfjklasdjklfjasdklj')" ;
qr.update(getConnection(),strsql);
// System.out.print("");
} catch (Exceptionex){
ex.printStackTrace(System.out);
}
}
private ConnectiongetConnection()throws InstantiationException,
IllegalAccessException,ClassNotFoundException,SQLException{
StringstrDriver= " org.gjt.mm.mysql.Driver" ;
StringstrUrl= " jdbc:mysql://localhost:3306/test" ;
StringstrUser= " root " ;
StringstrPass= "" ;
Class.forName(strDriver).newInstance();
return DriverManager.getConnection(strUrl,strUser,strPass);
}
}
Dbutils 详解
最新推荐文章于 2025-08-08 22:01:10 发布