apache commons DbUtils使用說明1
添加時間:2011-3-18
添加:
admin
(1)org.apache.commons.dbutils
DbUtils : 提供如關閉連接、裝載 JDBC 驅動程序等常規工作的工具類
QueryRunner : 該類簡單化了 SQL 查詢,它與 ResultSetHandler 組合在一起使用可以完成大部分的數據庫操作,能夠大大減少編碼量。
QueryLoader : 屬性文件加載器,主要用于加載屬性文件中的 SQL 到內存中。
(2)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
(3)org.apache.commons.dbutils.wrappers
SqlNullCheckedResultSet :該類是用來對sql語句執行完成之后的的數值進行null的替換。
StringTrimmedResultSet :去除ResultSet中中字段的左右空格。Trim()
二、例子
Java代碼
public class TestDbUtils {
/**
* BeanListHandler :將ResultSet中所有的數據轉化成List,List中存放的是類對象
*/
public static void getBeanListData() {
Connection conn = getConnection();
QueryRunner qr = new QueryRunner();
try {
ResultSetHandler rsh = new BeanHandler(TUser.class);
TUser usr = (TUser) qr.query(conn,"SELECT id,username,gender FROM t_user WHERE id=10000",rsh);
System.out.println(StringUtils.center("findById", 50, '*'));
System.out.println("id=" + usr.getId() + " name=" + usr.getUsername() + " gender=" + usr.getGender());
List results = (List) qr.query(conn,"SELECT id,username,gender FROM t_user",
new BeanListHandler(TUser.class));
System.out.println(StringUtils.center("findAll", 50, '*'));
for (int i = 0; i < results.size(); i++) {
TUser user = (TUser) results.get(i);
System.out.println("id=" + user.getId() + " name=" + user.getUsername() + " gender=" + user.getGender());
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DbUtils.closeQuietly(conn);
}
}
/**
* MapListHandler :將ResultSet中所有的數據存成List。List中存放的是Map
*/
public static void getMapListData() {
Connection conn = getConnection();
QueryRunner qr = new QueryRunner();
try {
List results = (List) qr.query(conn,"SELECT id,username,gender FROM t_user",
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("username") + " gender=" + map.get("gender"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DbUtils.closeQuietly(conn);
}
}
/**
*新增和更新例子
*/
public static void insertAndUpdateData(){
Connection conn = getConnection();
QueryRunner qr = new QueryRunner();
try{
//創建一個數組來存要insert的數據
Object[] insertParams = {"John Doe", "000000","男"};
int inserts = qr.update(conn, "INSERT INTO t_user(username,password,gender) VALUES (?,?,?)",
insertParams );
System.out.println("inserted " + inserts + " data");
Object[] updateParams = {"111111", "John Doe"};
關鍵字:apache commons DbUtils 使用 說明