框架体系说明

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. 2016.02.02 JS事件

    今天看完JS事件部分,所剩时间不多,务必分秒珍惜.

  2. VS&SQL StartUp Crash - CLR20R3

    VS2013和SQL Management Studio 在启动时直接崩溃,错误提示CLR20R3,问题签名4是windowsbase, 这说明是操作系统的问题导致启动崩溃,在网上找到一些解决方案: ...

  3. new String(“a”)与String a="a";

    String a=new String ("a"); String b=new String ("a"); //这是比较地址 System.out.printl ...

  4. scala 闭包的概念

    闭包本质上是一个函数和其引用的变量的统一定义,它的返回值依赖于这个函数外部的一个或者多个变量. var test = (i:Int) => i+sum 这里 i是一个形参, 随着函数的调用传入不 ...

  5. Java NIO教程 Selector

    这次我们开讲非阻塞I/O中的Selector,它需要配合非阻塞的TCP和UDP来使用.首先我们先简单讲一下TCP和UDP的非阻塞通道. 非阻塞I/O通道 在上代码前我们先讲解一些最基本的知识.TCP和 ...

  6. Exception异常规范

    把异常的栈轨迹以String形式返回 /** * 把异常的栈轨迹以String形式返回,而不是直接打印到console * @author King * @time 2015-04-29 * @ret ...

  7. (转)MVC,MVP 和 MVVM 的图示

    作者: 阮一峰 日期: 2015年2月 1日 复杂的软件必须有清晰合理的架构,否则无法开发和维护. MVC(Model-View-Controller)是最常见的软件架构之一,业界有着广泛应用.它本身 ...

  8. 使用Servlet实现图片下载

    package chensi.com; import java.io.FileInputStream; import java.io.IOException; import java.net.URLE ...

  9. 咏南中间件+开发框架支持最新的DELPHI XE10.1(BERLIN) UPDATE1

    咏南中间件+开发框架支持最新的DELPHI XE10.1(BERLIN) UPDATE1 购买提供:中间件源码,价格十分优惠!有意者请向本人索取演示程序! 附带福利(赠送): CS开发框架源码BS开发 ...

  10. Jfinal 使用 JsonKit 转换不了问题

    使用bootStrap+jfinal开发一个管理系统,遇到了前台ajax获取数据,使用了jfinal的Jsonkit,将一个继承了model的vo进行转换,却一直没有将vo的属性值转换为json格式, ...