NBIbatis 框架體系說明

框架體系說明

 

Application 表現層

表現層必須經過Business業務規則層操做數據庫,不能直接調用DataAccess數據訪問。web

 

  •   Sqlmap.config配置:

         connectionString配置節已轉移到web.config中進行配置sql

         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 =1;

menuModel.ID =new Guid();

menuRule.Insert(menuModel);

//批量增長

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

EXH_WechatMenu menuModel = new EXH_WechatMenu();

EXH_WechatMenu menuModel 2= 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 =2;

menuRule.Save(menuModel);

//批量修改

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

EXH_WechatMenu menuModel = new EXH_WechatMenu();

EXH_WechatMenu menuModel 2= 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 2= 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 處理

日誌記錄

數據校驗類

相關文章
相關標籤/搜索