博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iBATIS.net直接执行sql语句
阅读量:6298 次
发布时间:2019-06-22

本文共 991 字,大约阅读时间需要 3 分钟。

在用iBatis.net与数据库打交道的过程中,发现iBatis.net拼接字符串不能直接拷贝然后在dbms里执行(获取runtime时的sql语句都是带@param1,@param2,@param3,...这样的形式)。有时候sql语句一个小小的标点(都怪自己学艺不精,呵呵)都会造成执行错误。其实,直接手写的sql字符串也可以通过iBatis来执行,而且支持select,insert,delete,update和存储过程。下面通过一段简单的代码来说明如何使用iBatis.net直接执行sql语句。

ContractedBlock.gif
Code

Person.xml的方法对应的配置文件如下:

    
<!--
直接执行select语句
-->
    
<
statement 
id
="ExecuteSelectSql"
  parameterClass
="string"
 remapResults
="true"
 resultMap
="SelectAllResult"
>
      sqlsql
    
</
statement
>

注意:

1、如果你没有设置remapResults="true",测试时你会发现,尽管你传入的sql语句虽然不同,但总是执行返回第一次传入的sql语句的结果。原因就是iBatis.net的缓存设置在起作用,所以,一定要设置remapResults="true"。
2、sqlsql的写法是安全的写法,<![CDATA[   sqlsql   ]]>也比较常见,但是#sql#的写法可能自动生成'',sql语句就会有问题。所以最保险的方式就是采取sqlsql的写法。
ps:示例使用iBatis.net直接成功执行select和insert操作。里面有一个分页的小功能。是笔者花了一天时间测试通过(就是常见的select top 方式),扩展性不是很好,但是很实用,而且很好调试,希望对你有帮助。
分页部分代码:

ContractedBlock.gif
Code

查询条件和sql拼接部分代码:

1、查询基类

ContractedBlock.gif
Code

2、实际查询类

ContractedBlock.gif
Code

在页面中的调用:

ContractedBlock.gif
Code

页面的cs代码:

ContractedBlock.gif
Code

最后,希望您能给出改进意见和建议。

本文转自JeffWong博客园博客,原文链接:http://www.cnblogs.com/jeffwongishandsome/archive/2009/10/26/1512550.html,如需转载请自行联系原作者

你可能感兴趣的文章
【Python】卸载完Python3 之后 Python2 无法打开IDLE
查看>>
sql 增加字段
查看>>
Java中的String字符串
查看>>
EDM营销中HTML邮件设计方法和技巧
查看>>
shell的最大命令行长度
查看>>
刚搭建的linux环境的基本优化以及优化脚本---菜鸟初写
查看>>
北京20-35万Sharepoint Senior Consultant
查看>>
Vue开源项目库汇总
查看>>
apache 站点安全
查看>>
zabbix监控管理维护脚本
查看>>
使用async/await——Nodejs+ExpressJs+Babel
查看>>
贵州省新农合业务系统容灾技术支撑服务项目
查看>>
zabbix邮件报警python脚本
查看>>
zabbix自动发现规则实现批量监控主机的TCP监听端口
查看>>
smarty半小时快速上手教程
查看>>
python fabric实现远程操作和部署
查看>>
表单form类型数据转换为数组array
查看>>
AIX系统日志学习笔记之三
查看>>
搜索进一步细化 谷歌或重回大陆
查看>>
瑞星个人安全产品又添新丁
查看>>