mybatis中的if标签有多个条件_MyBatis动态SQL第一篇之实现多条件查询(if、where、trim标签)...

本文介绍了MyBatis动态SQL中的if、where和trim标签,通过实例展示了如何使用这些标签实现多条件查询,避免在SQL拼接中出现的错误和冗余。在if标签中,利用test属性实现条件判断,where标签智能处理SQL的where部分,trim标签则提供了更灵活的前缀和后缀处理,避免多余的SQL关键字。
摘要由CSDN通过智能技术生成

一、动态SQL概述

以前在使用JDBC操作数据时,如果查询条件特别多,将条件串联成SQL字符串是一件痛苦的事情。通常的解决方法是写很多的if-else条件语句对字符串进行拼接,并确保不能忘了空格或在字段的最后省略逗号。MyBatis使用动态SQL来改善这种情形,动态SQL是基于OGNL的表达式,可方便我们在SQL语句中实现某些逻辑。用于实现动态SQL的元素如下。

if:利用if实现简单的条件选择

choose(when,otherwise):相当于Java中的switch语句,通常与when和otherwise搭配使用

set:解决动态更新语句

trim:可以灵活的去除多余的关键字

foreach:迭代一个集合,通常用于in条件

二、if用法

在查询条件不是很多并且较为固定的情况下,最好的解决方案是采用多参数直接入参的方式,这样代码比较清晰,可读性强。如下

public interfaceUserMappper{public List getUserList(@Param("userName") String userName,

@Param("userRole") Integer roleId);}

select u.*, r.roleName from smbms_user u, smbms_role r

where u.userName like connect ('%', #{userName}, '%')

and u.userRole=#{userRole} and u.userRole=r.id

在上述代码中,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值