SQL Maps
Sql Maps是這個框架中最激動人心的部分,它是整個iBATIS Database Layer的核心價值所在。通過使用Sql Maps你可以顯著的節約數據庫操作的代碼量。SQL Maps使用一個簡單的XML文件來實現從實體到SQL statements的映射。跟其他的框架或者對象映射工具相比,SQL Maps最大的優勢是簡單。它需要學習的東西很少,在連接表或復雜查詢時也不需要復雜的scheme,使用SQL Maps,你可以自由的使用SQL語句。Data Access Objects (DAO)
當我們開發靈活的DOTNET應用時,有一個好主意就是通過一個通用API層把實體操作的細節封裝起來。Data Access Objects允許你通過一個簡單接口的來操作數據,從而隱藏了實現的細節。使用DAO,你可以動態配置你的應用程序來訪問不同的實體存儲機制。如果你有一個復雜的應用需要用到幾個不同的數據庫,DAO可以讓你建立一個一致的API,讓系統的其他部分來調用。
Examples
NPetShop Example Application 一個在線商店。
SQL Maps (IBatisNet.DataMapper.*)
概念
SQL Map API允許程序員很簡單的把DOTNET對象映射到PreparedStatement參數或者ResultMap。SQL Maps的機制很簡單,提供一個框架,來實現用20%的代碼來實現80% ADO.NET的功能。How does it work?
SQL Maps提供一個簡單的框架,通過XML描述來映射DOTNET實體類,MAP implementations甚至原始類型的包裝(String,Integer等)到Ado.net PreparedStatement。想法很簡單,基本的步驟如下:
1) 提供一個參數,無論是對象還是一個Nativel類型。參數將被用于設置sql語句或存儲過程的運行時的值
2) 通過傳送參數和在你的xml描述中的聲明名字或者存儲過程來執行映射。這一步將是魔術般的步驟??蚣軐䴗蕚鋝ql聲明或者存儲過程,用你的參數設置運行時數據值,執行sql語句或者存儲過程,返回結果。
3) 在更新的時候,更新的行數將會被返回。在查詢的時候,返回的將是一個對象或者對象的集合。象參數,結果對象,或者對象的集合,可以是一個plan-old對象或者native類型。
Data Access Objects
在開發健壯的 Dotnet 應用程序時,用分層的持久性實現的詳細說明通常是一個好主意。Data Access Objects(DAO)允許您創建簡單的組件,提供對數據的訪問,而無需將實現的詳細說明展示給應用程序的其余部分。使用 DAO 可以動態地配置應用程序,從而使用不同的持久性機制。如果您有一個涉及許多不同的數據庫和持久性方法的復雜程序,那么 DAO 可以幫助您創建一個用于您將使用的其他應用程序的持久性 API。通過允許將動態的、可插入的 DAO 組件很容易地換入換出,可以使用 iBATIS Data Access Objects API 幫助隱藏持久性層實現的細節,不讓其他應用程序知道。例如,您可以使用兩個特殊的 DAO,一個使用 iBATIS SQL Maps 框架將對象持久存儲到數據庫中,另一個則使用NHibernate 框架。類似的一個例子將是一個為另一個 DAO 提供緩存服務的 DAO。根據使用情況(例如,有限的數據庫性能與有限的內存相對),您可以插入這個緩存 DAO,或者可以使用標準的非緩存 DAO。這些例子展示了 DAO 模式提供的一些便利;然而,DAO 提供的安全性更為重要。DAO 模式可以保護應用程序,使之不必與特定持久性方法捆綁在一起。在當前解決方案不適合(甚至不可用)的情況下,可以創建新的 DAO 實現來支持新的解決方案,而不必修改其他應用層中的任何代碼。
翻譯此頁