|
|
||||
| 1.0 其他語言 |
||||
4.3 寫你自己的 DAO 類 |
||||
|
在大多數情況下,都需要寫自己的 DAO 函數,因為自動產生的 DAO 函數太簡單,無法應付復雜場合。 許多專案都需要從多個表中查詢,在這種情況下,我們需要寫一些 VO(value object) 類。新的 VO 類可以是一個全新的 Java bean 類,或者是自動產生的資料庫 model 類的子類 比如,表 A 有如下欄位(column): 我們可以寫一個新的 VO 類來應付新的查詢需求︰ public class MyVO{
String xx;
這里的 mapping 是基于資料庫欄位(column) 名稱和 Java bean 屬性名稱,這里不需要額外的配置檔案。 對于其他的更新/刪除操作,可以使用 ANSI SQL 寫 DAO 函數:
public void decreaseInventory(String productItemId, long qty) {
StringBuffer sql = new StringBuffer();
sql.append("update inventory i set qty = qty - ?");
sql.append(" where itemid = ?");
List paraList = new LinkedList();
paraList.add(new Long(qty));
paraList.add(productItemId);
int updateCount = this.update(sql.toString(), paraList.toArray());
log.debug("udpate count:" + updateCount);
}
相比較直接用 JDBC 編程,優勢在于我們不再需要注意資源的釋放了,不再需要使用 JDBC Connection/Statement/ResultSet 了,也不需要寫 try catch 了. |
|||