持久化框架——編程模型

就需要開發的組件和每個組件所使用的語言而言,編程模型是什麼樣的?

相對於框架和應用組件而言,持久對象的“生命週期”是什麼樣的?

1.     初始化

在服務實現的內部,需要進行什麼樣的初始化才能夠訪問框架的API?

給出在查詢id=100的客戶(Customer)之前,需要用來初始化框架的代碼。

說明如何使用Derby JDBC驅動程序來設置框架,以及如何使用JNDI名稱jdbc/Derby/DataSource的應用程序的數據源(DataSource)。

2.     鏈接

支持什麼樣的鏈接模型?

給出一個顯示地創建連接的例子,在例子中使用與初始化部分相同的查詢(如果支持這樣做,並且在初始化部分中還沒有給出過該查詢的話)。

說明如何將數據庫連接池的大小設置爲20。

3.     事務

框架支持什麼樣的事務控制?

給出一個這樣的例子,即把兩個更新語句作爲一組放到用戶定義的單個事務中,如果可能的話,請使用如下的更新。

(1)  更新id=100的企業客戶(business customer)信息,設置businessPartnet=false。

(2)  更新客戶的未結訂單(openOrder ),設置status=`SUBMITTED' 。

廢除一個這樣的例子,即配置框架以便能夠使用應用程序服務器的全局事務(例如JTA)。

支持什麼隔離級別?

給出每種支持的隔離級別所需的代碼。

4.     創建

描述在框架內部創建對象的一般方法。

給出創建一個新的租住客戶(ResidentialCustomer)的代碼。

給出創建一個客戶(Customer)擁有的新訂單(Order)的代碼。

5.     檢索

描述在框架內部進行查詢和對象檢索的一般方法。

特別需要明確的是,是否支持動態查詢?

給出檢索匹配給定主鍵的單個客戶(Customer)的代碼。

給出檢索所有“活躍”的客戶(Customer)(具體而言,指所有具有未結訂單(OPEN_ORDER)的客戶(Customer))的代碼。

6.     更新

描述在框架內部更新對象的一般方法。

給出更改單項(LineItem)的數量(quantity)的代碼,具體來說,就是使用給定的客戶ID(customerId)來把單項產品(LineItem)的數量的值更新爲100.

給出把未結訂單(OpenOrder)屬性更改爲Null的代碼。

7.     刪除

描述在框架內部刪除對象的一般方法。

特別需要明確的是,是否支持級聯刪除?

給出刪除單項(LineItem)的代碼。

給出刪除訂單(Order)和所有相關聯的單項(LineItem)(如果支持級聯刪除的話就通過級聯刪除)的代碼。

8.     存儲過程

描述在框架內部調用存儲過程的一般方法。

給出弟阿勇一下的“交換排序”的java存儲過程的代碼。

SwapPojo orderlds=new SwapPojo();

orderlds .setFjrst (orderldl);

orderlds .setSecond (orderld2);

dm.update(”swap .order”,orderlds);

9.     批處理

描述在框架內部支持批處理的一般方法。

批模式支持什麼樣的更新操作?

爲每種支持的操作給出一個例子。

10.框架拓展

使用簡短的接口/API例子描述所有可能的拓展點或插入點。

如果框架支持插入分佈式的緩存框架的話,那麼可以推遲到分佈式緩存部分再給出例子。

11.  錯誤處理

描述處理框架中的異常的一般方法。如果可能的話,考慮加入一個UML類圖或者用你喜歡的符號描述的類圖來說明其層次體系。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章