ibatis (六) dynamic的用法
- dynamic可以去除第一个prepend="and"中的字符(这里为and),从而可以帮助你实现一些很实用的功能。具体情况如下:
- 1.使用dynamic
- 1.1 xml
- select * from Person表
- <dynamic prepend="where">
- <isNotNull property="name" prepend="and">
- name=#name#
- </isNotNull>
- <isNotNull property="sex" prepend="and">
- sex=#sex#
- </isNotNull>
- </dynamic>
- 1.2 结果
- 当name、sex都非null时打出如下的sql语句:
- select Person表 where (and) name= ? , and sex= ?
- 显然name前的and被自动去除了,很方便吧。
- 2.不使用dynamic
- 2.1 xml
- 如果我把dynamic 去掉就会变的很恶心,如下:
- select * from Person表
- <isNotNull property="name" prepend="and">
- name=#name#
- </isNotNull>
- <isNotNull property="sex" prepend="and">
- sex=#sex#
- </isNotNull>
- 2.2 结果
- 当name、sex都非null时打出如下的sql语句:
- select Person表 where and name= ? , and sex= ?
- 显然name前多个and,sql语句错误。
- 3.总结
- 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的用法的更多相关文章
- ibatis dynamic的用法
<select id="idididid" resultClass="java.uitl.HashMap" parameterClass="ja ...
- iBatis一些非见用法(相当实用)
兼顾效率,iBatis一些非见用法(10条) 2009-09-18 10:33:03 标签:iBatis 休闲 职场 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声 ...
- Ibatis动态(dynamic)查询
Ibatis的动态查询使得数据操作变得非常的灵活,下次举出了常用的动态查询的属性信息: Ibatis配置信息 <!-- Dynamic Sql --> <typeAlias a ...
- ibatis中iterate的用法(conjunction="or" ",")
例子一 查询条件dto public class queryCondition{ private String[] stuIds; private String name;} 查询sqlMap < ...
- @property、@synthesize和dynamic的用法
原文: http://blog.csdn.net/hherima/article/details/8622948 @代表“Objective-C”的标志,证明您正在使用Objective-C语言 O ...
- var,dynamic的用法
private void Form1_Load(object sender, EventArgs e) { var dt = Getuser() as IEnumerable<dynamic&g ...
- ibatis.net:惯用法
使用<![CDATA[]]>保持SQL格式 IN 查询
- 理解C# 4 dynamic(1) - var, object, dynamic的区别以及dynamic的使用
阅读目录: 一. 为什么是它们三个 二. 能够任意赋值的原因 三. dynamic的用法 四. 使用dynamic的注意事项 一. 为什么是它们三个? 拿这三者比较的原因是它们在使用的时候非常相似.你 ...
- C#dynamic关键字(1)
一.object,var,dynamic的区别 static void Main() { //var是C# 3中引入的,其实它仅仅只是一个语法糖. var本身并不是一种类型, 其它两者object和d ...
随机推荐
- 软件-集成开发环境:IDEA(Java 语言开发的集成环境)
ylbtech-软件-集成开发环境:IDEA(Java 语言开发的集成环境) IDEA 全称IntelliJ IDEA,是用于java语言开发的集成环境(也可用于其他开发语言),IntelliJ在业界 ...
- 用PS做圆角图片
ps: Adobe Photoshop CS2 如果图片被锁定,请“双击”图层中“背景”解锁,如果没有图层菜单,在最上面导航栏中:窗口—图层.如下图: 点“确定”,解锁. 选用“圆角矩形工具”. ...
- Hive 任务优化 tips
1. 集群任务队列: 一般有 root.default, root.online, root.offline, root.spark-thiftserver Hue提交的任务一般默认在 defau ...
- Timestamp 数据类型四舍五入引起的神奇bug
神奇bug, Timestamp 会四舍五入也会引起 bug .. String UUID = java.util.UUID.randomUUID().toString(); long time = ...
- windows注册表解析说明
https://www.cnblogs.com/wfq9330/p/9176654.html
- js day01
一)什么是JavaScript[以下简称JS] JS是 (1)基于对象 JS本身就有一些现成的对象可供程序员使用,例如:Array,Math,String... JS并不排除你可以自已按一定的规则创建 ...
- ffmpeg使用经验
1.工作要使用ffmpeg将视频转换成H264格式,网上查到的很多使用方法都是如下: ffmpeg -i input.mov -c:v libx264 -crf output.mov -i后面表示输入 ...
- epoll的LT和ET(转)
1 socket IO事件 1.1 读事件 读事件:句柄从不可读变成可读,或者句柄写缓冲区有新的数据进来且超过SO_RCVLOWAT. 常见的产生读事件有如下几种: socket有一个未清除的错误.如 ...
- centos7下 nginx配置upstream 不能直接代理到本机tomcat的解决
Nginx代理本地tomcat时404. upstream是直接配置server localhost:10000 的.单独访问tomcat是可以的. 查看/var/log/nginx/error.lo ...
- 自动滚动标签marquee
<marquee>标签,它是成对出现的标签,首标签<marquee>和尾标签</marquee>之间的内容就是滚动内容.<marquee>标签的属性主要 ...