应用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,自定义实体的结合,在开发中提供最灵活的数据传递对象。

时间: 2024-10-28 21:40:05

应用IBatisNet+Castle进行项目的开发的相关文章

再论IBatisNet + Castle进行项目的开发

随着项目的进展,Castle和IBatisNet给我的惊喜更多.Com+很重,不需要分布式的中小项目慎用,NHibernate虽好,NHibernate的2005-9-20发布了最新版本1.0-rc1,缺少高水平的OO设计师,项目组程序员水平参次不齐 ,应用Castle + IBatisnet大家不会再把精力浪费到数据访问,事务处理,主键生成等地方了,可以集中精力进行业务组件的编写.项目的进展很顺利.    从架构上讲,Castle作为轻量级Ioc容器无疑要位于高位,所以iBatisNet现在只

项目架构开发:业务逻辑层之领域驱动失血模型

前边我们构建了个数据访问层,功能虽然简单,但是基本够用了.传送门:项目架构开发:数据访问层 这次我们构建业务逻辑层 业务逻辑是一个项目.产品的核心,也是现实世界某种工作流程在代码层面的体现. 所以,业务逻辑的合理组织构造,或更真实地反映现实业务操作,对项目的成功与否非常重要 现在业界对业务逻辑层的开发,一般会参考Martin Fowler大师提出来的针对业务层开发的四种模式 分别是面向过程的事务脚本.表模块模式,面向对象的活动记录与领域开发模式 我们要做的就是领域驱动开发模式,注意标题中的“失血

项目架构开发:数据访问层之Query

接上文 项目架构开发:数据访问层之Repository 上一章我们讲了IRepository接口,这张我们来讲IQuery 根据字面意思就可以知道,这次主要讲数据查询,上一章我们只针对单表做了查询的操作,多表联查并没有实现 其实对于任何一个项目来说,多表联查都是比较麻烦的地方,因为项目的“读”操作,特别是多表的“读”,至少占据所有“读”的一半以上 然而至今,据我所知还没有哪一款ORM工具可以灵活处理多表联查:想要不写sql语句,又想性能高,还想用强类型的ling查询方法:这对于多表查询来说比较难

使用Spring Boot来加速Java web项目的开发

使用Spring Boot来加速Java web项目的开发 我想,现在企业级的Java web项目应该或多或少都会使用到Spring框架的. 回首我们以前使用Spring框架的时候,我们需要首先在(如果你使用Maven的话)pom文件中增加对相关的的依赖(使用gradle来构建的话基本也一样)然后新建Spring相关的xml文件,而且往往那些xml文件还不会少.然后继续使用tomcat或者jetty作为容器来运行这个工程.基本上每次创建一个新的项目都是这么一个流程,而我们有时候仅仅想快速的创建一

Android创建新项目及开发

创建一个新项目是很简单的,只要你安装了Eclipse插件,并且你的Eclipse软件版本在3.2或3.3,你就可以开始开发了. 首先, 看一下要创建"Hello, World"程序从高级层面上有哪些步骤: 1, 通过 File -> New -> Project 菜单,建立新项目"Android Project" 2, 填写新项目各种参数. 3, 编辑自动生成的代码模板. 仅此而已,我们通过下面的详细说明来完成每个步骤. 1.创建一个新的Android项

Cocos2d-x项目实战开发:功夫小子之 基础类分析与实现

Cocos2d-x项目实战开发:功夫小子之 基础类分析与实现 Cocos2d-x实战项目开发:功夫小子之基础类分析与实现 — 课程概要 游戏项目基本工具类的分析和实现 游戏项目英雄实体类的分析和实现 具有简单AI的怪物实体类的分析和实现 一.基本工具类的分析和实现 帧动画相关概念介绍 动画创建器的实现和全局数据文件的创建 帧动画(Frame By Frame) 是在“连续的关键帧”中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画. 涉及的相关函数和类 动画帧 Spr

VC解决方案,项目,开发一段时间启动调试很慢,半天才开始链接

笔者这两天写代码过程中,发现自己解决方案下的程序启动调试,半天才开始加载相关的各种库.导致调试的时候很是郁闷 开始以为是项目关联的工程太多导致,但是在相同的解决方案sln下面,新建一个简单的控制台程序同样启动很慢.而该控制台项目程序加载到其他的解决方案中,调试时很快 就开始加载各种库. 问题大致定位在解决方案本身的问题.具体原因没有找到,笔者暂时的做法是重新建立一个解决方案,把需要的工程加载进来,速度哗哗的上去了. VC解决方案,项目,开发一段时间启动调试很慢,半天才开始链接,布布扣,bubuk

项目架构开发:服务层(下)

之前我们已经完成了服务层,因为当时展现层还没有出来,所以只做了简单介绍.传送门:项目架构开发:服务层(上) 这次我们通过一个维护系统用户的场景来介绍一下服务层真正的设计用意. 1.新增用户场景 新增用户可能会有以下步骤 实现以上需求,开发人员一般情况下可能就是以上 蓝红黑紫绿 几种选择 1.有些写在Controllers.有些写在Application 2.都写在Controllers或都写在Application 3.有些写在DAL层.甚至存储过程 特别是新手以及那些拿来主义的人,他们不会花更

项目架构开发:异常处理及日志

上一篇我们完善了多层开发的效率问题,传送门:项目架构开发:展现层(下) 这次我们完成架构的异常处理功能,异常处理一般都与日志分不开的,因为分析及定位问题需要一些详细信息: 稍微正规一点的公司,都会分开发.测试及生产环境.在本地及测试环境出BUG了,问题很好解决 调试跟踪问题,三下五除二就搞完了:但是在生产环境出问题,基本上是不允许直连数据库调试的: 这时候如何没有足够的异常信息参考,那你就悲催了,你等着加班熬夜吧. 为了解决这个问题,所以异常信息的捕捉及记录就显得非常重要了,一个完善的系统,出问