gaozhuang211
xiexie
Dbutils详解
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);
}
}
posted on 2009-02-24 15:36
红孩儿
阅读(5209)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
Powered by:
BlogJava
Copyright © 红孩儿
<
2009年2月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1
2
3
4
5
6
7
导航
BlogJava
首页
新随笔
联系
聚合
管理
统计
随笔 - 6
文章 - 0
评论 - 0
引用 - 0
常用链接
我的随笔
我的评论
我的参与
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔档案
2009年5月 (1)
2009年2月 (2)
2009年1月 (1)
2008年12月 (1)
搜索
最新评论
阅读排行榜
1. Dbutils详解(5209)
2. JavaScript精华(1439)
3. oracle数据库服务器的监听配置(798)
4. oracle无法启动tnslistener服务(755)
5. oracle的一些基础命名(638)
评论排行榜
1. JavaScript精华(0)
2. Dbutils详解(0)
3. oracle数据库服务器的监听配置(0)
4. oracle的一些基础命名(0)
5. oracle无法启动tnslistener服务(0)