专栏首页张善友的专栏IBatisNet之获取和操作SQL语句

IBatisNet之获取和操作SQL语句

IBatisNet和其他的ORMapping的工具相比较,可以说是一个sqlmap,所以在Why use iBATIS SQL Maps? 中有一条理由是 You already know SQL, why waste time learning something else? 所以在我们的实际框架中更多的地方需要得到SQL语句。在我的架构中有这样的接口:

复杂的SQL主要是查询,统计这样的功能接口:  

   DataTable GetDataTable(string tag, object paramObject) ;  
   string GetSql(string tag, object paramObject); 

这样我们对于复杂的查询,统计等就可以使用DataTable来映射查询结果,这里介绍一下string GetSql(string tag, object paramObject)的实现。 代码如下:

public string GetSql(string tag, object paramObject) 
        { 
            IStatement statement = _sqlMap.GetMappedStatement(tag).Statement; 
            RequestScope request = statement.Sql.GetRequestScope(paramObject, 
                new SqlMapSession(_sqlMap.DataSource)); 
            return request.PreparedStatement.PreparedSql; 
        }

statement用于insert,Select,Update用于检查标识符,然后根据paramObject和tag组合成SQL.。获取到了SQL,执行SQL和ADO.NET是一样的。IBatisNet只是包装了ADO.NET,使用的ADO.NET的接口方式实现代码,也就是基于接口编程。工作中总是发现很多的同事说不喜欢使用接口,说什么使用类就可以为什么要用接口呢。其实在工作中很多还是以结构化的思想在编写向对象的代码,类只是显得有点面向对象。这里只是发一下牢骚,不针对任何人。实现DataTable GetDataTable(string tag, object paramObject)接口的代码就不写了,我想大家也知道怎么写了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用System.Net.Mail通过gmail发送电子邮件

    gmail的smtp采用了ssl连接:      Outgoing Mail (SMTP) Server - requires TLS: smtp.gmail....

    张善友
  • WCF服务中操作FormsAuthentication的Cookie

    在asp.net 应用程序和WCF服务之间共享FormsAuthentication,默认是不支持的,设置一下非常的简单,只需要两步就可以了: 1、在web.c...

    张善友
  • Windows远程桌面连接Mac OS X

    第一步:Mac OS X 10.5 已经增加支持了由VNC Viewer访问的功能,设置如下:   系统偏好设置-共享-勾选“屏幕共享”,然后在电脑设置—...

    张善友
  • API测试--HTTPie入门【Linux-Command line】

    使用HTTPie(一种使用Python编写的易于使用的命令行工具)调试API客户端。

    QRosie
  • MyBatis魔法堂:各数据库的批量Update操作

    一、前言                                     MyBatis的update元素的用法与insert元素基本相同,因此本篇不打...

    ^_^肥仔John
  • R720使用IDRAC安装ESXI 6.5

    小柒吃地瓜
  • 字符串、数组去重

    ProsperLee
  • “协力抗疫,码力 全开”线上黑客马拉松+29号健健康康小队+学生返校疫情排查

    ①学生需求-疫情期间确保自身生命安全:确保返校途中自身安全、返校后生活和学习如何展开

    健健康康小队
  • Mac 下安装使用numpy出错解决方法

    简单、
  • Python和Scala的类和对象(一)

    前面的文章我们更多的是关注于函数,现在开始进入面向对象的世界了。函数是一种对过程的抽象,它提供了单一的入口和出口,封装了一系列的逻辑处理,而类和对象更像是对物体...

    哒呵呵

扫码关注云+社区

领取腾讯云代金券