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);
}
}
gaozhuang211 xiexie Dbutils 详解( gaozhuang)
猜你喜欢
转载自jiava9900.iteye.com/blog/1150171
今日推荐
周排行