1. 程式人生 > >應用IBatisNet+Castle進行項目的開發

應用IBatisNet+Castle進行項目的開發

net htm 伸縮 urn return dot cnblogs mob www

最近在做一個項目,項目的需求不夠明確,這是做項目的大忌,但是沒有辦法。項目的架構采用Dotnet平臺使用C#進行開發,為了加快項目的開發進度,采用代碼生成工具之MyGeneration 生成業務基本代碼,數據持久層采用IBatisNet,事務處理采用Castle的事務處理代碼塊,整體采用Castle IOC容器進行組裝。
IBatisNet的SQL語句放在XML文件中,SQL語句同代碼的分離,帶來的好處很多,修改數據庫的結構,只需要使用代碼生成器生成XML文件和數據庫表對應的業務實體,直接使用生成的業務實體代碼替換原來的業務實體文件和XML文件,DAO和BLL的代碼都不需要修改,降低了修改數據庫結構的風險。
數據層主要的工作就是寫sql代碼,獨立出來區別對待確實很有好處,對最簡單的sql語句,ibatisnet 也可以幫我們生成,可以說是伸縮有度!,復雜的SQL主要是查詢,統計這樣的功能,這樣的功能實現采用一個接口:
/// <summary>
/// 通用的以DataTable的方式得到Select的結果(xml文件中參數要使用$標記的占位參數)
/// </summary>
/// <param name="tag">語句ID</param>
/// <param name="paramObject">語句所需要的參數</param>
/// <returns>得到的DataTable</returns>
DataTable GetDataTable(string tag, object paramObject) ;

/// <summary>
/// 通用得到參數化後的SQL(xml文件中參數要使用$標記的占位參數)
/// </summary>
/// <param name="tag">語句ID</param>
/// <param name="paramObject">語句所需要的參數</param>
/// <returns>獲得的SQL</returns>
string GetSql(string tag, object paramObject);

功能實現采用IBatisNet的DataAccess組件,可以得到執行的SQL語句。復雜的查詢總是有很多的條件,要構造這樣的條件本來就是麻煩事,通過IBatisNet一切都變得很簡單。
通過DataTable,IList,自定義實體的結合,在開發中提供最靈活的數據傳遞對象。

應用IBatisNet+Castle進行項目的開發