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);
}
}
|
|
随笔:8
文章:23
评论:45
引用:0
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
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 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|
留言簿(5)
文章分类(25)
最新随笔
搜索
积分与排名
最新评论

|
|