一直以来有一个想法,搭建一个属于自己的框架,将自己学到的东西整合到框架里,不断的完善,让它随着我的成长而成长,下面介绍我第一阶段的总结: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(目前的启动项,测试用)

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

MyFramework框架搭建(一)DAL层的更多相关文章

  1. MyFramework框架搭建(二)DAL层整体通信

    首先在这里我要感谢张哥(亲,如果你能看到),没有他和他的框架就没有我今天的思路. 书接上回—整体实现思路 一.编码规范 Pascal和Camel(具体如何实现,兄弟我就不详细介绍了) 二.通信方式 W ...

  2. asp.net mvc 简单项目框架的搭建过程(一)对Bll层和Dal层进行充分解耦

    学习asp.net 已经有近三个月的时间了,在asp.net mvc上花的时间最多,但个人真是有些菜,不得不说,asp.net mvc的水真的还是蛮深的.目前在公司实习,也见过公司几个项目的代码了.对 ...

  3. MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等

    SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...

  4. MVC+Ef项目(1) 项目的框架搭建

    一:首先我们来搭建最基本的项目框架,这里使用MVC3作为web项目,然后我们添加几个类库项目 最后的项目如下, 其中有一个 YouJiao.MvcWeb.Repository 实际就当做是 DAL层即 ...

  5. [c#]asp.net开发微信公众平台(2)多层架构框架搭建和入口实现

    上篇已经设计出比较完善的数据库了,这篇开始进入代码.  首先把上篇设计的数据库脚本在数据库中执行下,生成数据库,然后在VS中建立项目,为了方便理解和查看,我设计的都是很直白的类名和文件名,没有命名空间 ...

  6. Spring4 mvc+maven 框架搭建(3)

    经过前面两个环节,spring mvc的原料已经准备好了,现在就可以正式开始搭建springmvc框架了. 首先先介绍介绍搭建的框架具有的功能: 1)集成log4j,配置好日志相关并可以打印出相关的日 ...

  7. Spring JdbcTemplate框架搭建及其增删改查使用指南

    Spring JdbcTemplate框架搭建及其增删改查使用指南 前言: 本文指在介绍spring框架中的JdbcTemplate类的使用方法,涉及基本的Spring反转控制的使用方法和JDBC的基 ...

  8. APS.NET MVC + EF (14)---项目框架搭建

    一:框架搭建     1:先创建Model. 2:创建数据访问接口层.IUserInfoDal 在该接口中定义了常见的方法CURD以及分页方法. public interface IUserInfoD ...

  9. 一步一步使用ABP框架搭建正式项目系列教程之本地化详解

    返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 本篇目录 扯扯本地化 ABP中的本地化 小结 扯扯本地化 本节来说说本地化,也有叫国际化.全球化的,不管怎么个叫法,反正道理都是一 ...

随机推荐

  1. HDU 5651 xiaoxin juju needs help 水题一发

    分析:求一下组合数 首先,如果不止一个字符出现的次数为奇数,则结果为0. 否则,我们把每个字符出现次数除2,也就是考虑一半的情况. 那么结果就是这个可重复集合的排列数了. fact(n)/fact(a ...

  2. CefSharp中实现Chrome中jS导出Excel

    [前言] 在博客园闲逛了一年多,平时都是借鉴别人的成功经验,总觉得自己应该分享点什么,但是苦于自己技术有限,平时又不爱写东西,所以一直没有写过任何东西.毕业一年多,在现实工作中遇到各种问题,深切体会到 ...

  3. javaweb css教程

    CSS 1.css的简介 * css: 层叠样式表 ** 层叠:一层一层的 ** 样式表: 很多的属性和属性值 * 是页面显示效果更加好 * CSS将网页内容和显示样式进行分离,提高了显示功能. 2. ...

  4. [E120L][KitKat][4.4.2][CM11] CM11 rom+ google app安装心得

    1. 本文针对 三星手机型号: E120L  即 samsung galaxy S2 HD LTE 2. 本文安装的android ROM 的内核为4.4.2 KitKat 3. 本文安装的第三方RO ...

  5. CMD-CMD命令之新建一个用户!

    1>>>>>> 新建管理员账号: net user net user xxxxx 123 /add net localgroup administrators xx ...

  6. jpcap 配置方法,问题解决,模拟sniffer程序。(附JAVA程序,jar,dll包等环境)

    博文链接 http://www.cnblogs.com/xckk/p/4609444.html 一.   Eclipse环境下安装与配置Jpcap 相关源程序.jpcap jar包,dll包,帮助文档 ...

  7. JavaScript的递归之更多例子

    更多例子 第二个递归的例子是求两个自然数的最大公约数(有没有回到令人怀念的中学时代).下面的程序用的是经典的辗转相除法. //greatest common divisor //假定a.b都是正整数 ...

  8. [C#]工具类—FTP上传下载

    public class FtpHelper { /// <summary> /// ftp方式上传 /// </summary> public static int Uplo ...

  9. 我这个IOS渣渣又来写随笔了

    我这个渣渣又来写了,哎,今天看了一篇大神面试别人的文章,感觉还有很遥远的路要走,不过没关系,还年轻,才入ios两个月,我相信自己的学习能力,加油! 博客园会是我成长的见证!

  10. POJ 2553 The Bottom of a Graph TarJan算法题解

    本题分两步: 1 使用Tarjan算法求全部最大子强连通图.而且标志出来 2 然后遍历这些节点看是否有出射的边,没有的顶点所在的子强连通图的全部点,都是解集. Tarjan算法就是模板算法了. 这里使 ...