• iBATIS.net直接执行sql语句


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

    Code

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

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

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

    Code

    查询条件和sql拼接部分代码:
    1、查询基类

    Code

    2、实际查询类

    Code

    在页面中的调用:

    Code

    页面的cs代码:

    Code

    最后,希望您能给出改进意见和建议。
    Demo下载:demo


    作者:Jeff Wong
    出处:http://jeffwongishandsome.cnblogs.com/
    本文版权归作者和博客园共有,欢迎围观转载。转载时请您务必在文章明显位置给出原文链接,谢谢您的合作。

  • 相关阅读:
    Java框架-Spring MVC理解004-spring MVC处理请求
    codeforces 484C Strange Sorting Codeforces Round #276 (Div. 1) C
    POJ 3415 Common Substrings 后缀数组+并查集
    HDU 5010 Get the Nut(2014 ACM/ICPC Asia Regional Xi'an Online)
    ZOJ 3817Chinese Knot(The 2014 ACM-ICPC Asia Mudanjiang Regional First Round)
    HDU 4946 Area of Mushroom(2014 Multi-University Training Contest 8)
    HDU 4951 Multiplication table(2014 Multi-University Training Contest 8)
    HDU 4938 Seeing People(2014 Multi-University Training Contest 7)
    HDU 4944 FSF’s game(2014 Multi-University Training Contest 7)
    HDU 4937 Lucky Number(2014 Multi-University Training Contest 7)
  • 原文地址:https://www.cnblogs.com/jeffwongishandsome/p/1512550.html
Copyright © 2020-2023  润新知