zoukankan      html  css  js  c++  java
  • 应用IBatisNet+Castle进行项目的开发

           最近在做一个项目,项目的需求不够明确,这是做项目的大忌,但是没有办法。项目的架构采用Dotnet平台使用C#进行开发,为了加快项目的开发进度,采用代码生成工具之MyGeneration 生成业务基本代码,数据持久层采用IBatisNet,事务处理采用Castle的事务处理代码块,整体采用Castle IOC容器进行组装。
           IBatisNet的SQL语句放在XML文件中,SQL语句同代码的分离,带来的好处很多,修改数据库的结构,只需要使用代码生成器生成XML文件和数据库表对应的业务实体,直接使用生成的业务实体代码替换原来的业务实体文件和XML文件,DAO和BLL的代码都不需要修改,降低了修改数据库结构的风险。
          数据层主要的工作就是写sql代码,独立出来区别对待确实很有好处,对最简单的sql语句,ibatisnet 也可以帮我们生成,可以说是伸缩有度!,复杂的SQL主要是查询,统计这样的功能,这样的功能实现采用一个接口:
       /// <summary>
      /// 通用的以DataTable的方式得到Select的结果(xml文件中参数要使用$标记的占位参数)
      /// </summary>
      /// <param name="tag">语句ID</param>
      /// <param name="paramObject">语句所需要的参数</param>
      /// <returns>得到的DataTable</returns>
      DataTable GetDataTable(string tag, object paramObject) ;

      /// <summary>
      /// 通用得到参数化后的SQL(xml文件中参数要使用$标记的占位参数)
      /// </summary>
      /// <param name="tag">语句ID</param>
      /// <param name="paramObject">语句所需要的参数</param>
      /// <returns>获得的SQL</returns>
      string GetSql(string tag, object paramObject);

    功能实现采用IBatisNet的DataAccess组件,可以得到执行的SQL语句。复杂的查询总是有很多的条件,要构造这样的条件本来就是麻烦事,通过IBatisNet一切都变得很简单。
     通过DataTable,IList,自定义实体的结合,在开发中提供最灵活的数据传递对象。 

  • 相关阅读:
    Windows7驱动调试小Tips
    [Sencha ExtJS &amp; Touch] 在Sencha(Extjs/Touch)应用程序中使用plugins(插件)和mixins(混入)
    C语言开发函数库时利用不透明指针对外隐藏结构体细节
    CLLocationManagerDelegate的解说
    RecyclerView的使用(1)之HelloWorld
    黑马day07 登录注冊案例(一)
    在互联网公司和行业软件公司上班,有什么差别?
    RHEL7 -- systemd
    RHEL7 -- 识别文件系统和设备
    11G新特性 -- 块介质恢复性能增强(block media recovery)
  • 原文地址:https://www.cnblogs.com/zhangyuhang3/p/6906073.html
Copyright © 2011-2022 走看看