|
||||
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 了. |
|||