框架体系说明

Application 表现层

表现层必须通过Business业务规则层操作数据库,不能直接调用DataAccess数据访问。

  • Sqlmap.config配置:

connectionString配置节已转移到web.config中进行配置

xml配置文件统一放在Model项目中,使用embedded内嵌,无需复制xml文件到运行目录

  Log4net配置:

Web.config中配置log4net需要自动记录的Ibatis.net

Global中配置启动log4net日志功能

protected void Application_Start(object sender, EventArgs e)

{

log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("~/log4net.config")));

}

  • 查询:
//根据ID获得对象

EXH_WechatMenuRule menuRule = new EXH_WechatMenuRule();

EXH_WXMember member = memberRule.GetByID(id);

//获得所有的数据

IList<EXH_WXMember> memberList = memberRule. SelectAll();

//按条件获得

IDictionary parm = new Dictionary<string, object>();

arm.Add("Token", Token);

IList<EXH_WXMember> memberList = memberRule.SelectByCondition(parm);
  • 增加:
//单个对象增加

EXH_WechatMenuRule menuRule = new EXH_WechatMenuRule();

EXH_WechatMenu menuModel = new EXH_WechatMenu();

menuModel.MenuName = “测试”;

menuModel.IsUse =;

menuModel.ID =new Guid();

menuRule.Insert(menuModel);

//批量增加

IList< EXH_WechatMenu > addList =  new List< EXH_WechatMenu>();

EXH_WechatMenu menuModel = new EXH_WechatMenu();

EXH_WechatMenu menuModel = new EXH_WechatMenu();

…

addList.Add(menuModel);

addList.Add(menuModel2);

menuRule. Insert(addList);
  • 修改:
//单个对象修改

EXH_WechatMenuRule menuRule = new EXH_WechatMenuRule();

EXH_WechatMenu menuModel = memberRule.GetByID(id);//根据ID获得对象

menuModel.MenuName = “测试1”;

menuModel.IsUse =;

menuRule.Save(menuModel);

//批量修改

IList< EXH_WechatMenu > updList =  new List< EXH_WechatMenu>();

EXH_WechatMenu menuModel = new EXH_WechatMenu();

EXH_WechatMenu menuModel = new EXH_WechatMenu();

…

updList.Add(menuModel);

updList.Add(menuModel2);

menuRule. Save (updList);
  • 删除:
//单个对象删除

EXH_WechatMenuRule menuRule = new EXH_WechatMenuRule();

menuRule.Delete(id);

//批量删除

IList< EXH_WechatMenu > delList =  new List< EXH_WechatMenu>();

EXH_WechatMenu menuModel = new EXH_WechatMenu();

EXH_WechatMenu menuModel = new EXH_WechatMenu();

…

delList.Add(menuModel);

delList.Add(menuModel2);

menuRule. Delete (delList);

Business 业务规则

业务规则必须通过DAO业务规则层操作数据库,不能直接操作数据库,非报表不能包含SQL。

  • Model

ibatis.net实体配置文件xml;业务实体类;枚举变量数据

约定:通用BaseRule的方法,

查询必须以SelectAll + Entity对象名称,如:

<select id="SelectAllEXH_Activity"  resultClass="EXH_Activity" >

select *

from EXH_Activity m

</select>

新增必须以Insert + Entity对象名称,如:

<insert id="InsertEXH_Activity" parameterClass="EXH_Activity">

INSERT INTO EXH_Activity

(…)

</insert>

修改必须以Update + Entity对象名称,如:

<update id="UpdateEXH_Activity" parameterClass="EXH_Activity">

UPDATE EXH_Activity SET …

</update>

删除必须以Delete + Entity对象名称,如:

<delete id="DeleteEXH_Activity" parameterClass="EXH_Activity">

UPDATE EXH_Activity SET …

</delete>

BaseInfo:Model 基类

由于我们数据库表结构默认都会包含字段:id、DataSt(是否有效)、CreateDate、 CreateUser、ModifyUser等字段,所以所有的实体继承BaseInfo并包含这些字段,可根据自己的需求去除这些字段属性

  • 配置规则

Rules         各个模块业务规则;系统写死固定值放在BaseDefault类中

Wechat.API微信开发公用接口—将在微信框架中详细说明

  • Rule查询

protected IEntityDAO<T> dao = DAOFactory.CreateEntityDAO<T>();

IDictionary parameter = new Dictionary<string, object>();

parameter.Add("ID", id);

return dao.SelectOne(t, parameter);

  • 增加

dao.Insert(t);

  • 修改

dao.Update(t);

  • 删除

dao.Delete(t);

批量处理—可多个不同对象同时提交

IEntityDAO<BaseInfo> myDAO = new EntityDAO<BaseInfo>();

List<BaseInfo> addList = new List<BaseInfo>();

List<BaseInfo> delList = new List<BaseInfo>();

myDAO.AddUpdDelList(addList, null, delList);

DataAccess 数据访问

  • DAO 数据访问

实体Rule流程:EntityDAOàBaseDAOàIbatisNetFactoryàMs SqlServer

EntityDAO:为实体封装的相关实体操作方法

BaseDAO:供Rule调用的基本方法合集

IbatisNetFactory:调用Ibatis.net ORM的数据实际操作类,自动读取运行时Web.config中的数据库连接字符串配置

DAOFactory 为非实体调用时公开给Rule调用的工厂,可自由切换不同数据库

Interceptor Castle.DynamicProxy AOP 拦截器,目前排除在项目外,在文件夹中可找到

MySqlDAO是MysqlDAO数据访问类  --目前仅提供sql操作,独立使用

  • Utility 工具帮助

加解密

文件上传图片服务器

dataset操作

Excel导入导出

缓存

HTTP 请求处理

Json 处理

日志记录

数据校验类

NBIbatis 框架体系说明的更多相关文章

  1. HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID

    HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...

  2. Java集合框架体系JCF

    Java 集合框架体系作为Java 中十分重要的一环, 在我们的日常开发中扮演者十分重要的角色, 那么什么是Java集合框架体系呢? 在Java语言中,Java语言的设计者对常用的数据结构和算法做了一 ...

  3. ABP之框架体系

    一 .框架体系的介绍 ABP框架采用的是DDD(领域驱动设计)的原则,可以很方便实现项目之间的松耦合,采用模块化的方式,方便对框架的扩展. 按照DDD的原则,首先将项目分为四层: 展现层:用来展现给用 ...

  4. java集合类-集合框架体系

    集合框架体系 集合框架体系是由Collection.Map和 Iterator(迭代器) 实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口 Collection体系 Set接口:元素无序且不 ...

  5. Java 集合框架体系总览

    尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 「CS-Wiki」Gitee ...

  6. 十五、Java基础---------集合框架体系以及List

    在介绍集合之前先说一下数组,正如我们所知,数组是某一类型数据的集合,强调的是数据,而且必须单一:集合框架的不同之处在于存储的数据类型没有任何限制,既可以存储基本数据类型(会自动提升为相应的包装类)也可 ...

  7. feed4junit 实现junit4框架体系下数据驱动

    junit 是一款很好用的测试框架,但是该框架在并行和数据驱动方面没有提供支持,往往我们队这2个需求是很迫切的,不过有需求就会有人去做,有心思的人出现了,feed4junit 出现了,弥补了junit ...

  8. Java中集合框架体系

    集合的体系结构:     |--Collection(单列集合的根接口)         |--List(子接口):元素是有序的,元素可以重复.因为该集合体系有索引.             |--A ...

  9. Java集合框架体系详细梳理,含面试知识点。

    一.集合类 集合的由来: 面向对象语言对事物都是以对象的形式来体现,为了方便对多个对象的操作,就需要将对象进行存储,集合就是存储对象最常用的一种方式. 集合特点: 1,用于存储对象的容器.(容器本身就 ...

随机推荐

  1. javascript generate a guid

    function Guid() { var random = (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); retu ...

  2. HTML <!DOCTYPE> Declaration

    <!DOCTYPE html><html><head><title>Title of the document</title></he ...

  3. notepad++ 右键

    在网上搜索建立reg 后运行, 虽然右键菜单出现了建立的右键项目名,但与软件不关联 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\ ...

  4. 怎么提高ArcSDE 写入地理数据库的效率

    link: http://blog.csdn.net/linghe301/article/details/20900615 2014-03-14 09:20 2686人阅读 评论(6) 收藏 举报   ...

  5. Multipart to single part feature

    Multipart to single part feature Explode Link: http://edndoc.esri.com/arcobjects/8.3/?URL=/arcobject ...

  6. noip2006 2^k进制数

    设r是个2k进制数,并满足以下条件: (1)r至少是个2位的2k进制数. (2)作为2k进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进制数q后,则q的总位数不超过w ...

  7. python json学习之路1-认识json格式数据

    JSON 语法规则 JSON 语法是 JavaScript 对象表示语法的子集. 数据在键值对中 数据由逗号分隔 花括号保存对象 方括号保存数组JSONJSON 名称/值对 JSON 数据的书写格式是 ...

  8. linq 延迟执行带来的困扰

    有这样一个案例: var filteredResult = from f in orgFileList select f; ; i < WorkStatusFilters.ListWorkSta ...

  9. delphi项目中的modelsupport文件夹

    delphi项目中的modelsupport文件夹 今天写着写着突然发现多了一个这个文件夹..苦思不得其解  看着又难受  删了又重建 终于找到了  存此备查;Tools--option--toget ...

  10. Java线程池的几种实现 及 常见问题讲解

    工作中,经常会涉及到线程.比如有些任务,经常会交与线程去异步执行.抑或服务端程序为每个请求单独建立一个线程处理任务.线程之外的,比如我们用的数据库连接.这些创建销毁或者打开关闭的操作,非常影响系统性能 ...