ibatis动态语句中的prepend
关于ibatis动态sql的prepend的属性,我们需要理解一下几点
select * from student
<dynamic prepend="where">
<isNotNull property="id" prepend="and">
id = #id#
</isNotNull>
<isNotNull property="name" prepend="and">
name like '%$name$%'
</isNotNull>
</dynamic>
要点一 prepend是添加在动态语句的前面
and是添加在id = #id#,同样and是添加在name like '%$name$%'前面
要点二 dynamic中首个prepend被忽略
按照要点一说法,语句select * from studnet and id = #id#就会出现问题了。其实若<isNotNull>写在<dynamic>里,且包含prepend,第一个isNotNull的prepend会被忽略。有的人会说,id不加prepend,变成<isNotNull property="id">?那就错了,因为name前面的and会被过滤掉了,会出错。
要点三 明白了要点二,可以理解拼接语句中遇到的一些错误问题
本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/1021949如需转载请自行联系原作者
woshixuye111
ibatis动态语句中的prepend相关推荐
- ibatis 动态语句拼写心得
ibatis 动态语句拼写心得 文章分类:Java编程 项目中用到了ibatis.看了很多篇在XML 里动态编写sql 的文章! 我突然有了疑问,在一个statement 中可以包含多个 dynami ...
- oracle动态语句打开游标,Oracle动态语句中返回游标
本来以为动态语句只能返回类似int.varchar2这种类型,今天测试了下,发现还支持游标,现测试如下: 创建返回游标的函数: create or replace function testf ret ...
- ibatis mysql iterate_ibatis中动态语句的iterate标签
例子一 查询条件dto public class queryCondition { private String[] stuIds; private String name; } 查询sqlMap s ...
- oracle不使用游标,oracle – 为什么我们不能在动态SQL语句中使用强引用游标?
这是一个带有强类型引用游标的过程: SQL> create or replace procedure p1 is 2 type dept_rc is ref cursor return dept ...
- oracle 执行带参数的sql语句_当用EXECUTE IMMEDIATE执行SQL语句中的参数个数也是动态的?用什么方法实现?...
当用EXECUTE IMMEDIATE执行SQL语句中的参数个数也是动态的?用什么方法实现? 描述详细一点就是:在要执行的SQL语句中所用到(: parameter)这种参数的个数,因具体条件不同,而 ...
- finereport报表设计中模板数据集的sql语句中if的用法_报表工具中动态参数的灵活运用...
报表开发过程中,有的时候我们会觉得普通参数很难满足一些业务需求,比如第二个数据集要引用第一个数据集的结果进行计算,动态控制 SQL 的过滤条件,动态列等,如果您遇到了这种情况,可以尝试使用动态参数即 ...
- sqlserver使用sp_executesql执行动态语句,并在存储过程中获取执行后的结果
declare @SqlStr nvarchar(max)--判断语句 declare @AlarmType varchar(10)--告警类别 max:大于范围值,min:小于范围值 declare ...
- HTML调用Java函数或语句,在动态THML语句中调用JS函数传递带空格参数的问题
刚刚遇到一个问题,调用js函数的参数里带空格,造成调用失败的问题. 部分代码如下: html+=" "; //name中如果有空格就是调用失败 html+=" " ...
- 数据库SQL:在插入语句中使用查询查询语句(动态获取数据库自增字段的值)
在插入语句中使用查询: INSERT into 表名(获取自增id1 ,获取自增id2 ,字段3 ,...... ,字段N ) SELECT 表别名1.id, 表别名2.id ,"字段3的值 ...
最新文章
- cassandra框架模型之一——Colum排序,分区策略 Token,Partitioner bloom-filter,HASH
- Windows内核加载器概念学习
- 版本控制集中式与分布式的区别
- P1101 单词方阵
- 正则表达式-匹配数字范围
- HBase—基础介绍
- 关于C++/C中符号
- 编译时错误之 error C2338: tuple_element index out of bounds
- 最大子段和问题Java实现
- uushare新增类似美味(del.icio.us)的书签服务
- 18--两数之和 II - 输入有序数组
- html5音乐播放器设计论文,基于微信小程序的音乐播放器设计和毕业论文
- 引用类型赋值“.NET技术”为null与加速垃圾回收
- 神奇的 SQL 之 ICP → 索引条件下推
- 多分类问题的另一种处理策略——softmax回归
- CMD 命令 文件操作
- 中国公用计算机互联网网络简称为什么,中国公用计算机互联网国际联网管理办法...
- 学习编程语言有哪些基本步骤呢?
- 从小白开始教你怎样在Eclipse中使用Git(番外) - 各种图标的含义
- java实现图片压缩
热门文章
- 在Ubuntu中打开pycharm步骤:
- 利用 Pandas 将数据集中的某列文本拆分为多行
- 使用迭代查找一个list中最小和最大值,并返回一个tuple。
- mybatis plus 中 EntityWrapper源码解读
- vlmcsd 编译与测试
- 老王学linux-centos6.7drbd8.4.3
- 8天后,有份独家小程序数据分析报告重磅来袭
- HDU 2602 Bone Collector DP(01背包)
- [译]5.1. System Initialization Overview 系统初始化简介
- 用JS脚本进行页面元素控制