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 ...
随机推荐
- 用EXCEL做快速傅立葉轉換_FFT in Excel
转载来自:http://yufan-fansbook.blogspot.tw/2013/09/excel-fft-fast-fourier-transform02.html [Excel]-用EXCE ...
- sql server 数据库变成单用户模式的恢复
USE master;GODECLARE @SQL VARCHAR(MAX);SET @SQL=''SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)FROM master. ...
- css实现垂直居中的方法整理
1.表格布局法.(利用表格的显示模式)需要用到一些冗余的 HTML 元素,因此这里不多介绍. 2.行内块法.也不作讨论,因为在我看来这种方法 hack 的味道很浓. 如果你有兴趣,可以去看看 Chri ...
- sqlserver 书查询 之二
WITH treeAS(SELECT ParentId, Organization_ID,1 AS x2level,Organization_Name,CAST(Organization_Name A ...
- lvm管理:扩展lv、删除pv、lv等
从卷组VG里扩展lv.删除pv,并删除物理卷PV 一.扩展LV.缩小LV 1.卸载LV 命令:umount "挂载目录" 2.扩展LV 命令:lvextend -L +500m ...
- leetcode每日刷题计划-简单篇day1
orzorz开始刷题 争取坚持每周平均下来简单题一天能做两道题吧 非常简单的题奇奇怪怪的错误orz越不做越菜 Num 7 整数反转 Reverse Integer 刚开始多给了一个变量来回折腾占地方, ...
- 深度学习原理与框架-递归神经网络-时间序列预测(代码) 1.csv.reader(进行csv文件的读取) 2.X.tolist(将数据转换为列表类型)
1. csv.reader(csvfile) # 进行csv文件的读取操作 参数说明:csvfile表示已经有with oepn 打开的文件 2. X.tolist() 将数据转换为列表类型 参数说明 ...
- 通过windows远程桌面连接CentOS系统
前提: CentOS安装桌面,如果无桌面,请执行 # yum -y groups install "GNOME Desktop" # startx 1 2 配置源 # yum in ...
- BM递推
从别的大佬处看到的模板 #include<bits/stdc++.h> #define fi first #define se second #define INF 0x3f3f3f3f ...
- SQLLDR导入乱码问题的解决
SQLLDR导入乱码问题的解决 处理过程: 1.本地建立控制文件 load data infile 'd:\TMP_KAITOUSHUJU.csv' into table TMP_KAITOU ...