gaozhuang211 xiexie Dbutils 详解( gaozhuang)

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);
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值