当前位置: 首页 > news >正文

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

相关文章:

  • 陪女友逛街完全手册 --搞笑
  • iOS 推送
  • 由浅入深学“工厂模式”(2)
  • 如何用十条命令在一分钟内检查Linux服务器性能
  • 第 4 章 构建以数据为中心的应用程序
  • T-SQL中的递归 --作者:Alexander Kozak
  • lamp--php部分
  • 地图人气大数据平台
  • 路由
  • 《Exceptional C++ Style中文版》 作者:Herb Sutter 定价39元
  • 9.19 数组 冒泡排序和二分法
  • Visual Studio 2015 for Linux更好地支持Linux下的开发
  • 如何要求加薪
  • 一个简单的替换Emoji表情字符的方法
  • [转]关于DataGrid的精华
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【css3】浏览器内核及其兼容性
  • CSS 三角实现
  • extjs4学习之配置
  • Less 日常用法
  • linux学习笔记
  • use Google search engine
  • Vue全家桶实现一个Web App
  • 阿里云应用高可用服务公测发布
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 动态魔术使用DBMS_SQL
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 聊聊redis的数据结构的应用
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 为视图添加丝滑的水波纹
  • 学习HTTP相关知识笔记
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 终端用户监控:真实用户监控还是模拟监控?
  • 扩展资源服务器解决oauth2 性能瓶颈
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​io --- 处理流的核心工具​
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (1)STL算法之遍历容器
  • (2022 CVPR) Unbiased Teacher v2
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (接口封装)
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET 4.0中的泛型协变和反变
  • .net CHARTING图表控件下载地址
  • .Net Winform开发笔记(一)
  • .netcore 获取appsettings
  • .NET应用架构设计:原则、模式与实践 目录预览