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 ...
随机推荐
- 解决Kubelet Pod启动CreatePodSandbox或RunPodSandbox异常方法
新装Kubernetes,创建一个新Pod,启动Pod遇到CreatePodSandbox或RunPodSandbox异常.查看日志 # journalctl --since :: -u kubele ...
- CSS之a标签锚点
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vmware中的linux虚拟机配置以nat模式上网,并用xshell连接该虚拟机
1. 首先确保宿主机上的vmnet8处于启用状态 2. 以管理员身份运行vmware >> 编辑 >> 虚拟机网络编辑器 >> 选中Vmnet8 >> ...
- Java笔试面试题整理第八波
转载至:http://blog.csdn.net/shakespeare001/article/details/51388516 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Python入门教程丨1300多行代码,让你轻松掌握基础知识点
欢迎关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 前言 本文适合有经验的程序员尽快进入Python世界.特别地 ...
- python中的第三方日志模块logging
基本上每个系统都有自己的日志系统,可以使自己写的,也可以是第三方的.下面来简单介绍一下python中第三方的日志模块,入手还是比较简单的,但是也很容易给自己埋雷. 下面是我参考的资料链接 入手demo ...
- 20165205 2017-2018-2 《Java程序设计》课程总结
20165205 2017-2018-2<Java程序设计>课程总结 每周作业链接总结 预备作业一: 简述了我认为好的师生关系,展望了未来学习java的日子 预备作业二:总结了C语言的学习 ...
- ZigBee毕设
毕设题目: —————————————————————————————————————————————————————————————————————————————— 基于Zigbee的智能家居监测 ...
- K8s之Etcd
Etcd是一个开源的.高可用的.分布式的键值对数据存储系统,提供共享配置.服务的注册和发现.etcd与zookeeper相比算是轻量级系统,两者的一致性协议也一样,etcd的raft比zookeepe ...
- oralce 中union 和union all 的简单使用说明
union:对两个结果集进行合并操作:不包括重复行:同时进行默认规则的排序: union all:对两个结果集进行合并操作:包括重复行:不排序: