view plain copy print?

  1. dynamic可以去除第一个prepend="and"中的字符(这里为and),从而可以帮助你实现一些很实用的功能。具体情况如下:
  2. 1.使用dynamic
  3. 1.1 xml
  4. select * from Person表
  5. <dynamic prepend="where">
  6. <isNotNull property="name" prepend="and">
  7. name=#name#
  8. </isNotNull>
  9. <isNotNull property="sex" prepend="and">
  10. sex=#sex#
  11. </isNotNull>
  12. </dynamic>
  13. 1.2 结果
  14. 当name、sex都非null时打出如下的sql语句:
  15. select Person表 where (and) name= ? , and sex= ?
  16. 显然name前的and被自动去除了,很方便吧。
  17. 2.不使用dynamic
  18. 2.1 xml
  19. 如果我把dynamic 去掉就会变的很恶心,如下:
  20. select * from Person表
  21. <isNotNull property="name" prepend="and">
  22. name=#name#
  23. </isNotNull>
  24. <isNotNull property="sex" prepend="and">
  25. sex=#sex#
  26. </isNotNull>
  27. 2.2 结果
  28. 当name、sex都非null时打出如下的sql语句:
  29. select Person表 where and name= ? , and sex= ?
  30. 显然name前多个and,sql语句错误。
  31. 3.总结
  32. dynamic 会自动去除第一个 prepend="and中的内容(这里为and),从而方便一些操作。

解決and存在問題 在开发过程 中 sql 语句后面写上where 1=1

这样就算不适用dynamic 也不需要消除and 就可以使用sql语句不会报错

SELECT *
   FROM (SELECT ROWS_.*, ROWNUM ROWNUM_
           FROM (select user_id,
                        user_name,
                        status,
                        user_type,
                        organ_id,
                        login_name,
                        password,
                        tel,
                        email,
                        sex
                   from sys_user
                  where 1 = 1
                    and sys_user.user_id = 114833
                  order by user_id) ROWS_
          WHERE ROWNUM <= 10)
  WHERE ROWNUM_ >= 1

ibatis (六) dynamic的用法的更多相关文章

  1. ibatis dynamic的用法

    <select id="idididid" resultClass="java.uitl.HashMap" parameterClass="ja ...

  2. iBatis一些非见用法(相当实用)

     兼顾效率,iBatis一些非见用法(10条) 2009-09-18 10:33:03 标签:iBatis 休闲 职场 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声 ...

  3. Ibatis动态(dynamic)查询

     Ibatis的动态查询使得数据操作变得非常的灵活,下次举出了常用的动态查询的属性信息: Ibatis配置信息 <!-- Dynamic Sql --> <typeAlias a ...

  4. ibatis中iterate的用法(conjunction="or" ",")

    例子一 查询条件dto public class queryCondition{ private String[] stuIds; private String name;} 查询sqlMap < ...

  5. @property、@synthesize和dynamic的用法

    原文:  http://blog.csdn.net/hherima/article/details/8622948 @代表“Objective-C”的标志,证明您正在使用Objective-C语言 O ...

  6. var,dynamic的用法

    private void Form1_Load(object sender, EventArgs e) { var dt = Getuser() as IEnumerable<dynamic&g ...

  7. ibatis.net:惯用法

    使用<![CDATA[]]>保持SQL格式 IN 查询

  8. 理解C# 4 dynamic(1) - var, object, dynamic的区别以及dynamic的使用

    阅读目录: 一. 为什么是它们三个 二. 能够任意赋值的原因 三. dynamic的用法 四. 使用dynamic的注意事项 一. 为什么是它们三个? 拿这三者比较的原因是它们在使用的时候非常相似.你 ...

  9. C#dynamic关键字(1)

    一.object,var,dynamic的区别 static void Main() { //var是C# 3中引入的,其实它仅仅只是一个语法糖. var本身并不是一种类型, 其它两者object和d ...

随机推荐

  1. 解决Kubelet Pod启动CreatePodSandbox或RunPodSandbox异常方法

    新装Kubernetes,创建一个新Pod,启动Pod遇到CreatePodSandbox或RunPodSandbox异常.查看日志 # journalctl --since :: -u kubele ...

  2. CSS之a标签锚点

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. vmware中的linux虚拟机配置以nat模式上网,并用xshell连接该虚拟机

    1.  首先确保宿主机上的vmnet8处于启用状态 2.  以管理员身份运行vmware >> 编辑 >> 虚拟机网络编辑器 >> 选中Vmnet8 >> ...

  4. Java笔试面试题整理第八波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51388516 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  5. Python入门教程丨1300多行代码,让你轻松掌握基础知识点

    欢迎关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 前言 本文适合有经验的程序员尽快进入Python世界.特别地 ...

  6. python中的第三方日志模块logging

    基本上每个系统都有自己的日志系统,可以使自己写的,也可以是第三方的.下面来简单介绍一下python中第三方的日志模块,入手还是比较简单的,但是也很容易给自己埋雷. 下面是我参考的资料链接 入手demo ...

  7. 20165205 2017-2018-2 《Java程序设计》课程总结

    20165205 2017-2018-2<Java程序设计>课程总结 每周作业链接总结 预备作业一: 简述了我认为好的师生关系,展望了未来学习java的日子 预备作业二:总结了C语言的学习 ...

  8. ZigBee毕设

    毕设题目: —————————————————————————————————————————————————————————————————————————————— 基于Zigbee的智能家居监测 ...

  9. K8s之Etcd

    Etcd是一个开源的.高可用的.分布式的键值对数据存储系统,提供共享配置.服务的注册和发现.etcd与zookeeper相比算是轻量级系统,两者的一致性协议也一样,etcd的raft比zookeepe ...

  10. oralce 中union 和union all 的简单使用说明

    union:对两个结果集进行合并操作:不包括重复行:同时进行默认规则的排序: union all:对两个结果集进行合并操作:包括重复行:不排序: