MyFramework框架搭建(一)DAL層

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

1、基礎配置數據庫

一、我用的是Ibatis.net框架apache

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

二、配置config文件oracle

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

三、生成Ibatis用到的XML文檔和實體類框架

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

一、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>

二、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(數據庫工廠)

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

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

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

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

五、MyFramework(目前的啓動項,測試用)

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

相關文章
相關標籤/搜索