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)接口的代码就不写了,我想大家也知道怎么写了。

文章来源:IBatisNet之获取和操作SQL语句

时间: 2024-07-31 06:37:19

IBatisNet之获取和操作SQL语句的相关文章

iBATIS.net获取运行时sql语句

[本文原创,第一次离首页如此之近.发在候选区攒攒rp,管理员看着不合适可以撤下.] 虽然只在iBatis的世界里小打小闹匆匆数月,却历经数次与领导和同事激辩,再通过不懈努力学习和开发积累,楼猪终于被它小巧而不失强大,稳定而不失灵活所折服.作为80后顽固.偏执和nc一族,楼猪一向保守认为自己是美貌与智慧并存的.仗着天资聪慧,在之前的“iBatis.net直接执行sql语句”里曾经公然抱怨iBATIS对sql语句的直接查看灰常的不友好,调试不方便,排除错误非常考验眼神,很重要的一条(甚至应该算是楼猪

JDBC 入门 - 操作SQL语句

操作 SQL 语句 Statement, PreparedStatement, CallableStatement 一旦建立好连接, 就可以与数据库交互. JDBC 中Statement, PreparedStatement 和 CallableStatement 提供了SQL操作的相关API. 其中 CallableStatement 继承自 PreparedStatement, 而 PreparedStatement 又继承自 Statement. 他们的区别是: Statement 提供基

mysql操作SQL语句

二.数据库操作SQL语句1.显示服务器上当前存在什么数据库SHOW DATABASES; 2.创建名称为rewin的数据库CREATE DATABASE rewin; 3.删除名称为rewin的数据库DROP DATABASE rewin; 4.选择rewin数据库USE rewin; 三.表操作SQL语句(登录之后必须用以上的USE命令选择一个数据库,再进行表操作)1.显示当前数据库中存在什么表SHOW TABLES; 2.创建数据库表zhangyan:在mysql>后粘贴以下SQL语句,存储

简单操作sql语句-提升我们工作效率(网站关键词替换sql语句)

有时候要批量修改一些内容真不容易 一个一个改一天过去了,但当你学会了使用sql 语句操作 一秒就可以搞定.所以减少我们工作量我们必需要学会提高工作效率. 可批量修改就这么轻松可以实现. update 表名 set article =(REPLACE(列名,'需要替换的内容','替之后的内容'))

JDBC操作SQL语句的注释和拼接

上网浏览帖子发现一个关于SQL中的in里面的参数动态添加的问题. 通常in里面的参数通过一个子查询获得与该参数相同类型或者可互转换的类型的一个字段信息.实际中经常会用到有个数组,该数组的内容正好是作为in里面的参数列表.通过SQL拼接的方式一定能够实现,即便看起来比较繁琐. 下面是通过预编译命令和参数占位的方式来实现: String sql = "select urlid, url from f_url where url in(?)";         pstmt = conn.pr

Oracle数据库常用操作sql语句

1.--建立表空间create tablespace cmdb_db datafile '\home\cmdb_11.dbf' size 100m autoextend on next 50m extent management local;2.--建用户create user cmdb_1023 identified by admin default tablespace cmdb_db;3.--给权限grant connect,resource,dba to cmdb_db;4.--导入数据

PHP获取MySQL执行sql语句的查询时间

1. $t1=microtime(true); mysql_query($sql); echo microtime(true)-$t1; 2. //计时开始 runtime(); //执行查询 mysql_query($sql); //计时结束. echo runtime(1); //计时函数 function   runtime($mode=0)   { static   $t; if(!$mode)   { $t   =   microtime(); return; } $t1   =  

MySql常用操作SQL语句汇总

MySQL的常见操作在这里先做一下总结,已经整合到代码里面,经过检验无误.复制代码代码如下: /创建一个数据库/create database xuning_test;/说明当时使用数据库对象/use xuning_test;/向数据库中添加表并且定义表的结构/create table person(id int not null,name varchar(16) not null,sex varchar(16) not null,age int not null,address varchar

Oracle查看用户操作sql语句以及数据库日志

--查看日志文件 select member from v$logfile; --查看表空间使用情况 SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name  FROM dba_free_space  GROUP BY tablespace_name;  SELECT a.tablespace_name,  a.bytes total,  b.bytes used,  c.bytes free,  (b.bytes * 1