|
||||
1.0 其他語言 |
||||
4.1 Apache Common Dbutils |
||||
|
Dbutils 是 Apache 提供的一個免費的開源 O/R mapping 庫。它不需要配置檔案就可以將 JDBC 結果集轉換成 Java bean。 這種轉換是基于資料庫欄位名和 Java bean 屬性名。 比如,資料庫 USER 表中欄位名 NAME,會 mapping 到 Java bean User 的 getName()/setName()。這種轉換是結果集一級的,不是表一級的。這意味著,我們可以從多個表中 select 出資料,然後將結果資料 mapping 到 POJO。 在 VelocityWeb 中一點小的增強,那就是 FIRST_NAME 可以 mapping 到 firstName。 下面是查詢單條資料的例子︰
public boolean checkPassword(String userName, String encryptedPassword) { String sql = "select * from signon where username = ?"; List paraList = new LinkedList(); paraList.add(userName); Signon user = (Signon) this.queryBean(sql, paraList.toArray(), Signon.class); if (user == null) { // can't find the user with login name return false; } return encryptedPassword.equals(user.getPassword()); } 以及查詢多條資料的例子︰
public java.util.List getAll(){ String sql = "select * from product"; return this.queryBeanList(sql, null, Product.class);//List 中每個元素都是一個 Product 物件 } 不足之處在于,Dbutils 基于 JDBC java.sql.PreparedStatement,SQL 參數使用索引來定位,不是使用名稱。對于復雜查詢,這樣處理參數比較容易寫錯。 |
|||