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)
最新隨筆
搜索
積分與排名
最新評論

|
|