Dbutils 详解


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 详解)