NBIbatis 框架体系说明
框架体系说明

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 框架体系说明的更多相关文章
- HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID
HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...
- Java集合框架体系JCF
Java 集合框架体系作为Java 中十分重要的一环, 在我们的日常开发中扮演者十分重要的角色, 那么什么是Java集合框架体系呢? 在Java语言中,Java语言的设计者对常用的数据结构和算法做了一 ...
- ABP之框架体系
一 .框架体系的介绍 ABP框架采用的是DDD(领域驱动设计)的原则,可以很方便实现项目之间的松耦合,采用模块化的方式,方便对框架的扩展. 按照DDD的原则,首先将项目分为四层: 展现层:用来展现给用 ...
- java集合类-集合框架体系
集合框架体系 集合框架体系是由Collection.Map和 Iterator(迭代器) 实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口 Collection体系 Set接口:元素无序且不 ...
- Java 集合框架体系总览
尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 「CS-Wiki」Gitee ...
- 十五、Java基础---------集合框架体系以及List
在介绍集合之前先说一下数组,正如我们所知,数组是某一类型数据的集合,强调的是数据,而且必须单一:集合框架的不同之处在于存储的数据类型没有任何限制,既可以存储基本数据类型(会自动提升为相应的包装类)也可 ...
- feed4junit 实现junit4框架体系下数据驱动
junit 是一款很好用的测试框架,但是该框架在并行和数据驱动方面没有提供支持,往往我们队这2个需求是很迫切的,不过有需求就会有人去做,有心思的人出现了,feed4junit 出现了,弥补了junit ...
- Java中集合框架体系
集合的体系结构: |--Collection(单列集合的根接口) |--List(子接口):元素是有序的,元素可以重复.因为该集合体系有索引. |--A ...
- Java集合框架体系详细梳理,含面试知识点。
一.集合类 集合的由来: 面向对象语言对事物都是以对象的形式来体现,为了方便对多个对象的操作,就需要将对象进行存储,集合就是存储对象最常用的一种方式. 集合特点: 1,用于存储对象的容器.(容器本身就 ...
随机推荐
- HashSet中的元素必须重写equals方法和hashCode方法
http://jingyan.baidu.com/article/d5a880eb8fb61d13f147cc99.html 1.为什么必须重写这两个方法. 2.什么事hashSet去重,符合什么样的 ...
- 面向服务体系架构(SOA)和数据仓库(DW)的思考基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台
面向服务体系架构(SOA)和数据仓库(DW)的思考 基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse, ...
- hdu 2896 字典树解法
#include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> ...
- Razor引擎中的_ViewStart.cshtml
Startup Code是在所有View执行之前加载和执行的代码. 在Razor引擎中的_ViewStart.cshtml 就是装载这些“预执行代码”的文件,它有两个特点: 一.就是所有View执行之 ...
- iframe跨域访问
js跨域是个讨论很多的话题.iframe跨域访问也被研究的很透了. 一般分两种情况: 一. 是同主域下面,不同子域之间的跨域: 同主域,不同子域跨域,设置相同的document.domian就可以解决 ...
- mysql学习(二)
(1)存储过程:存储过程是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理: (2)存储过程优点:增强SQL语句的功能和灵活性,实现较快的执行速度,减少网络流量: (3)存储过程结构 ...
- wpf 任务栏闪烁
[StructLayout(LayoutKind.Sequential)] public struct FLASHWINFO { public UInt32 cbSize; public IntPtr ...
- java核心知识点学习----equals和==的比较、单例模式,饿汉式,饱汉式
最近发现自己学习能力变慢了,想来想去还是发现是因为自己Java基础没有打扎实,接下来的一系列文章将主要记录自己对于Java的最基础知识点的学习. 一.equals和==的比较 先看例子: packag ...
- AVL树模板
///AVL树模板 typedef struct Node ///树的节点 { int val,data; int h; ///以当前结点为根结点的数的高度 int bf; ///平衡因子(左子树高度 ...
- poj 3841 Double Queue (AVL树入门)
/****************************************************************** 题目: Double Queue(poj 3481) 链接: h ...