框架体系说明

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")));

}

  • 查询:
  1. //根据ID获得对象
  2.  
  3. EXH_WechatMenuRule menuRule = new EXH_WechatMenuRule();
  4.  
  5. EXH_WXMember member = memberRule.GetByID(id);
  6.  
  7. //获得所有的数据
  8.  
  9. IList<EXH_WXMember> memberList = memberRule. SelectAll();
  10.  
  11. //按条件获得
  12.  
  13. IDictionary parm = new Dictionary<string, object>();
  14.  
  15. arm.Add("Token", Token);
  16.  
  17. IList<EXH_WXMember> memberList = memberRule.SelectByCondition(parm);
  • 增加:
  1. //单个对象增加
  2.  
  3. EXH_WechatMenuRule menuRule = new EXH_WechatMenuRule();
  4.  
  5. EXH_WechatMenu menuModel = new EXH_WechatMenu();
  6.  
  7. menuModel.MenuName = “测试”;
  8.  
  9. menuModel.IsUse =;
  10.  
  11. menuModel.ID =new Guid();
  12.  
  13. menuRule.Insert(menuModel);
  14.  
  15. //批量增加
  16.  
  17. IList< EXH_WechatMenu > addList = new List< EXH_WechatMenu>();
  18.  
  19. EXH_WechatMenu menuModel = new EXH_WechatMenu();
  20.  
  21. EXH_WechatMenu menuModel = new EXH_WechatMenu();
  22.  
  23.  
  24. addList.Add(menuModel);
  25.  
  26. addList.Add(menuModel2);
  27.  
  28. menuRule. Insert(addList);
  • 修改:
  1. //单个对象修改
  2.  
  3. EXH_WechatMenuRule menuRule = new EXH_WechatMenuRule();
  4.  
  5. EXH_WechatMenu menuModel = memberRule.GetByID(id);//根据ID获得对象
  6.  
  7. menuModel.MenuName = “测试1”;
  8.  
  9. menuModel.IsUse =;
  10.  
  11. menuRule.Save(menuModel);
  12.  
  13. //批量修改
  14.  
  15. IList< EXH_WechatMenu > updList = new List< EXH_WechatMenu>();
  16.  
  17. EXH_WechatMenu menuModel = new EXH_WechatMenu();
  18.  
  19. EXH_WechatMenu menuModel = new EXH_WechatMenu();
  20.  
  21.  
  22. updList.Add(menuModel);
  23.  
  24. updList.Add(menuModel2);
  25.  
  26. menuRule. Save (updList);
  • 删除:
  1. //单个对象删除
  2.  
  3. EXH_WechatMenuRule menuRule = new EXH_WechatMenuRule();
  4.  
  5. menuRule.Delete(id);
  6.  
  7. //批量删除
  8.  
  9. IList< EXH_WechatMenu > delList = new List< EXH_WechatMenu>();
  10.  
  11. EXH_WechatMenu menuModel = new EXH_WechatMenu();
  12.  
  13. EXH_WechatMenu menuModel = new EXH_WechatMenu();
  14.  
  15.  
  16. delList.Add(menuModel);
  17.  
  18. delList.Add(menuModel2);
  19.  
  20. 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. arpg网页游戏之地图(一)

    [转]http://www.cnblogs.com/BlueWoods/p/4681572.html?from=timeline&isappinstalled=1 开发arpg网页游戏一项比较 ...

  2. ServiceLocator 简单示例(转)

    Service Locator Pattern in C#: A Simple Example(转) Service Locator Pattern in C# with Lazy Initializ ...

  3. node.js入门及express.js框架

    node.js介绍 javascript原本只是用来处理前端,Node使得javascript编写服务端程序成为可能.于是前端开发者也可以借此轻松进入后端开发领域.Node是基于Google的V8引擎 ...

  4. pcA降维算法

    http://ufldl.stanford.edu/wiki/index.php/主成分分析 if ~exist('train_IM_all','var')||~exist('train_LA_all ...

  5. smarty基本语法

    smarty基本语法: 1.注释:<{* this is a comment *}>,注意左右分隔符的写法,要和自己定义的一致. <{* I am a Smarty comment, ...

  6. HTML5和CSS3基础教程(第8版)-读书笔记(4)

    第16章 表单 表单有两个基本组成部分:访问者在页面上可以看见并填写的控件.标签和按钮的集合:以及用于获取信息并将其转化为可以读取或计算的格式的处理脚本. 基本的表单字段类型包括文本框.单选按钮.复选 ...

  7. html file控件选择文件后立即预览 js实现

    //上传图片后立即预览 file对象,图片容器id function showImg(fileObj,imgId) { var file=fileObj.files[0]; var r = new F ...

  8. Windows XP SP3下编译安装openssl-1.1.0b

    软件需要: openssl-1.1.0b visual studio 2010(cn_visual_studio_2010_ultimate_x86_dvd_532347.iso) perl:Acti ...

  9. Markdown常用基本语法

    现在是我在学习Markdown时做的笔记.学完这些Markdown的基本使用已经不成问题. 1. 标题设置(让字体变大,和word的标题意思一样)在Markdown当中设置标题,有两种方式:第一种:通 ...

  10. android中如何发送及接收数据(两种方法)?

    1.如在MainActivity.java中的按钮点击时设置: //发送数据方法1--简单型 i.putExtra("txt", "没错,我就是刚传来的信息!" ...