MyFramework框架搭建(一)DAL層


  一直以來有一個想法,搭建一個屬於自己的框架,將自己學到的東西整合到框架里,不斷的完善,讓它隨着我的成長而成長,下面介紹我第一階段的總結:DAL層搭建

一、基礎配置

1、我用的是Ibatis.net框架

     首先需要引用三個DLL(IBatisNet.Common.dll,IBatisNet.DataAccess.dll,IBatisNet.DataMapper.dll)

2、配置config文件

     三個config文件(properties.config,providers.config,SqlMap.config)

3、生成Ibatis用到的XML文檔和實體類

二、詳細實現思路(目前五層CommonFile,DAL,Model,MyFramework(測試啟動項),ShareLibrary)

1、CommonFile(用於存儲公共的文件)

      IbatisConfigFolder(Ibatis配置文件,三個配置文件屬性都必須是嵌入式的)

      1)providers.config(配置有具體用哪種數據庫)

           enabled="true"

      2)properties.config(IbatisSqlMap參數定義界面)

           格式:<settings><add key="con" value="oracleClient1.0" /></settings>

      3)SqlMap.config(Ibatis最重要的配置文件)

           格式:

           <sqlMapConfig xmlns="http://ibatis.apache.org/dataMapper"  xmlns:xsi="http://www.w3.org           /2001/XMLSchema-instance"?><--高版本的Ibatis用的就是這個sqlMapConfig-->

            <properties embedded="CommonFile.IBatisConfigFolder.properties.config" /><--加載定義的參數配置文件-->

           

            <settings>
            <setting useStatementNamespaces="false" /><--該參數默認是false,如果是true需要把SqlMap名也寫上-->
            <setting cacheModelsEnabled="true" /><--全局性地啟用或禁用 SqlMapClient 的所有緩存-->
            <setting validateSqlMap="false" /><--是配置是否啟用驗證映射文件-->
            </settings>

            <providers embedded="CommonFile.IBatisConfigFolder.providers.config"/><--加載數據庫配置文件-->

             <database><--讀取屬性配置文件夾里的參數-->
             <provider name="${con}" />
             <dataSource name="connectionString" connectionString="${conString}" />
             </database>

              <sqlMaps><--加載具體XML文檔-->
              <sqlMap embedded="${ModelRoot}T_S_USER.xml,${ModelAssembly}"/>
              </sqlMaps>

2、DAL(我滴目的是把該層做成可以集成所有數據庫並且公共的數據處理如序列化)

     IbatisDBFolder(Ibatis數據庫文件夾,以后可以有ADO.net或者其他的數據庫操作文件夾)

      1)BaseSqlMapDao(Ibatis最基礎的操作類)

          構造函數定義的是一個可選參數的構造函數(因為默認情況下就是一個庫,並且路徑不會變,但以防萬一)

          public BaseSqlMapDao(String libraryName = "CommonFile", String config =(NSpace).SqlMap.config")          

          封裝的方法,方法內部是對SqlMap最原始的引用,其他方法類似

          protected object ExecuteInsert(string statementName, object parameterObj)
         {
              return sqlMap.Insert(statementName, parameterObj);
         }

      2)IBatisPersistence(在BaseSqlMapDao基礎上對操作方法的封裝,並繼承這個類和IDBHelp類)

           對Ibatis基礎類的二次封裝,方便以后改動。繼承IDBHelp

     InterfaceFolder(接口層文件夾)

      1)IDBHelp(對外暴露的接口)

           目的:方便以后集成其他映射或者對數據庫操作的類

     FactoryFolder(工廠文件夾)

      1)DBFactory(數據庫工廠)

           定義工廠類的目的是對外只需暴露一個工廠就可以,業務邏輯層不需要知道他們調用的是哪種數據庫映射,只需調用就可 

3、Model(模板類庫,用於存儲自動生成的各種模板)

     MapsFolder、ModelFolder兩個文件夾分別存儲XML,實體類

4、SharedLibrary(存儲引用的第三方類庫,方便管理)

5、MyFramework(目前的啟動項,測試用)

     以上是我這幾天的思路,如果哪位博友有緣看到,不吝賜教,小弟虛心接受。下一步是對數據的封裝(待續)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM