MyBatis where标签的用法
来源:互联网 发布:淘宝团队规模 编辑:程序博客网 时间:2024/05/11 04:22
场景:在MyBatis拼装动态SQL语句中,在where的条件中常常先判断 if 条件是否成立,再加入 where 的条件部。
例如,查询满足条件的学生时,考虑到 if 标签的条件都不成立的情况,因此在 where 的 条件补加入 1=1 这个永真条件,如果没有加入1=1,这个语句在执行时是一个错误不能执行的语句。
XML语句代码:
<select id="queryStudent" parameterType="StudentDTO" resultType="Student" > select * from Student where 1 = 1 <if test="name != null and name != ''"> and name = #{name,jdbcType=VARCHAR} </if> <if test="address != null and address != '' "> and address = #{address,jdbcType=VARCHAR} </if> <if test="nation != null and address != '' "> and nation = #{nation,jdbcType=VARCHAR} </if> </select>
解决方法:MyBatis的 where 标签可以解决如上所示的例子,经过改写后的XML语句代码:
<select id="queryStudent" parameterType="StudentDTO" resultType="Student"> select * from Student <where> <if test="name != null and name != ''"> and name = #{name,jdbcType=VARCHAR} </if> <if test="address != null and address != '' "> and address = #{address,jdbcType=VARCHAR} </if> <if test="nation != null and address != '' "> and nation = #{nation,jdbcType=VARCHAR} </if> </where> </select>当where标签里面的条件成立之时,SQL会自动加入 where 关键字,而且如果where标签内返回的内容是以 and 或者 or 关键字开头的,则开头的 and 或者 or 会被剔除掉。
阅读全文
0 0
- MyBatis where标签的用法
- MyBatis的<where>标签
- Mybatis的<where><if>标签
- mybatis中sql标签、where标签、foreach标签用法
- mybatis动态SQL的<where>标签
- Mybatis的<where><foreach><set>标签详解
- mybatis <where> <set>标签的作用
- MyBatis中的<where>标签和where子句的区别
- Mybatis where标签
- Mybatis <where>标签
- mybatis中<where>标签、<set>标签、<trim>标签、<sql>标签、<foreach>标签的使用
- MyBatis--动态SQL---where标签
- mybatis choose标签的用法
- Mybatis的<where><foreach><set>等标签详解
- Mybatis的<where><foreach><set>等标签详解
- Mybatis的<where><foreach><set>等标签详解
- Mybatis的<where><foreach><set>等标签详解
- Mybatis的<where><foreach><set>等标签详解
- 剑指offer 调整数组顺序使奇数位于偶数前面
- &&的使用
- MFC学习笔记-数据处理
- Placentor植物胎盘素教你怎么分辨胎盘素
- Deep Residual Network 与 梯度消失
- MyBatis where标签的用法
- (POJ 1011)题目接上条,这次是自己写的哈哈,看起来像是蛮笨的方法。
- Codeforces Round #431 (Div. 2) (Codeforces 850C) E. Goodbye Souvenir cdq分治
- http 协议
- python random模块生成随机数
- unix ip 地址值
- init命令
- C++顺序容器之list初探
- bzoj1529: [POI2005]ska Piggy banks(tarjan||并查集)