ibaties 动态拼接

动态拼接实例,这样不用写存储过程也能实现灵活拼接,注意这里用了isEqual标签


01.<?xml version="1.0" encoding="UTF-8"?>  
02.<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
03. "http://ibatis.apache.org/dtd/sql-map-2.dtd">
04.<sqlMap namespace="commons">
05. <!-- 定义综合查询前缀,后缀sql -->
06. <sql id="prefixSql">
07. <dynamic>
08. <isEqual property="doCount" compareValue="true">
09. select count(*) from (
10. </isEqual>
11. <isEqual property="doCount" compareValue="false">
12. SELECT * FROM (select row_.*, rownum start_rownum_ from
13. (
14. </isEqual>
15. </dynamic>
16. </sql>
17. <sql id="suffixSql">
18. <dynamic>
19. <isEqual property="doCount" compareValue="true">)</isEqual>
20. <isEqual property="doCount" compareValue="false">
21. <![CDATA[
22. ) row_ WHERE rownum <= #startIndex# + #pageSize# ) WHERE start_rownum_ > #startIndex#
23. ]]>
24. </isEqual>
25. </dynamic>
26. </sql>
27. <sql id="countPrefix">select count(*) from (</sql>
28. <sql id="countSuffix">)</sql>
29. <sql id="pagePrefix">
30. <dynamic>
31. <isNotNull property="pageSize">
32. SELECT * FROM ( select rownum r, union_tb.* from (
33. </isNotNull>
34. </dynamic>
35. </sql>
36. <sql id="pageSuffix">
37. <dynamic>
38. <isNotNull property="pageSize">
39. <![CDATA[
40. ) union_tb
41. ) WHERE r > #startIndex# AND r <= #startIndex# + #pageSize#
42. ]]>
43. </isNotNull>
44. </dynamic>
45. </sql>
46.</sqlMap>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值