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(目前的启动项,测试用)

     以上是我这几天的思路,若是哪位博友有缘看到,不吝赐教,小弟虚心接受。下一步是对数据的封装(待续)

相关文章
相关标签/搜索