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(目前的启动项,测试用)
以上是我这几天的思路,如果哪位博友有缘看到,不吝赐教,小弟虚心接受。下一步是对数据的封装(待续)
MyFramework框架搭建(一)DAL层的更多相关文章
- MyFramework框架搭建(二)DAL层整体通信
首先在这里我要感谢张哥(亲,如果你能看到),没有他和他的框架就没有我今天的思路. 书接上回—整体实现思路 一.编码规范 Pascal和Camel(具体如何实现,兄弟我就不详细介绍了) 二.通信方式 W ...
- asp.net mvc 简单项目框架的搭建过程(一)对Bll层和Dal层进行充分解耦
学习asp.net 已经有近三个月的时间了,在asp.net mvc上花的时间最多,但个人真是有些菜,不得不说,asp.net mvc的水真的还是蛮深的.目前在公司实习,也见过公司几个项目的代码了.对 ...
- MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
- MVC+Ef项目(1) 项目的框架搭建
一:首先我们来搭建最基本的项目框架,这里使用MVC3作为web项目,然后我们添加几个类库项目 最后的项目如下, 其中有一个 YouJiao.MvcWeb.Repository 实际就当做是 DAL层即 ...
- [c#]asp.net开发微信公众平台(2)多层架构框架搭建和入口实现
上篇已经设计出比较完善的数据库了,这篇开始进入代码. 首先把上篇设计的数据库脚本在数据库中执行下,生成数据库,然后在VS中建立项目,为了方便理解和查看,我设计的都是很直白的类名和文件名,没有命名空间 ...
- Spring4 mvc+maven 框架搭建(3)
经过前面两个环节,spring mvc的原料已经准备好了,现在就可以正式开始搭建springmvc框架了. 首先先介绍介绍搭建的框架具有的功能: 1)集成log4j,配置好日志相关并可以打印出相关的日 ...
- Spring JdbcTemplate框架搭建及其增删改查使用指南
Spring JdbcTemplate框架搭建及其增删改查使用指南 前言: 本文指在介绍spring框架中的JdbcTemplate类的使用方法,涉及基本的Spring反转控制的使用方法和JDBC的基 ...
- APS.NET MVC + EF (14)---项目框架搭建
一:框架搭建 1:先创建Model. 2:创建数据访问接口层.IUserInfoDal 在该接口中定义了常见的方法CURD以及分页方法. public interface IUserInfoD ...
- 一步一步使用ABP框架搭建正式项目系列教程之本地化详解
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 本篇目录 扯扯本地化 ABP中的本地化 小结 扯扯本地化 本节来说说本地化,也有叫国际化.全球化的,不管怎么个叫法,反正道理都是一 ...
随机推荐
- 部署解决方案包 (SharePoint Server 2010)
转:http://technet.microsoft.com/zh-cn/library/cc262995(v=office.14).aspx 本文介绍各个解决方案包,及其在 Microsoft Sh ...
- BrnShop开源网上商城第二讲:ASP.NET MVC框架
在团队设计BrnShop的web项目之初,我们碰到了两个问题,第一个是数据的复用和传递,第二个是大mvc框架和小mvc框架的选择.下面我依次来说明下. 首先是数据的复用和传递:对于BrnShop的每一 ...
- java汉字转拼音以及得到首字母通用方法
package oa.common.utils; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.piny ...
- SPOJ3267 D-query 离线+树状数组 在线主席树
分析:这个题,离线的话就是水题,如果强制在线,其实和离线一个思路,然后硬上主席树就行了 离线的代码 #include <iostream> #include <stdio.h> ...
- NOIP2011普及组 瑞士环 保序性
题目链接:http://noi.openjudge.cn/ch0401/4363/ 分析:如果直接模拟,时间复杂度是O(r*nlogn)超时 然后我们发现每次一轮开始时,刚开始是保序的,然后我们可以把 ...
- 利用Testng注释实现多线程并发测试
Testng 是一款非常优秀的测试框架,真正从测试角度出发,为测试所想.在测试过程中我们经常会遇到对某一个场景做并发请求,主要想了解该程序在并发时是否会有异常或者没考虑到的其他情况,这时往往不是要做性 ...
- asp.net 中Session的运用,及抛出错误“未将对象引用设置到对象的实例”
1. 页面载入后,必须要等到page_Load方法执行建立 page对象后才可以使用Session 2. 在.aspx和.cs文件中使用Session的区别 (1).aspx: Session[&qu ...
- WIN7中盾牌的编程-DELPHI
在PAR文件中引用UAC.RES文件(见下载地址) 代码如下: {$R uac.RES} 点击下载
- sap判断条件
EQ 等于= 等于NE 不 等于<> 不 等于>< 不 等于LT 小 于< 小于LE 小 于等于<= 小 于等于GT 大 于> 大于GE ...
- C 数据结构1——线性表分析(顺序存储、链式存储)
之前是由于学校工作室招新,跟着大伙工作室招新训练营学习数据结构,那个时候,纯碎是小白(至少比现在白很多)那个时候,学习数据结构,真的是一脸茫然,虽然写出来了,但真的不知道在干嘛.调试过程中,各种bug ...