mybatis怎么设置当不满足所有if test的条件则返回空?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis怎么设置当不满足所有if test的条件则返回空?相关的知识,希望对你有一定的参考价值。

mybatis怎么设置当不满足所有if test的条件则返回空?
<select
id="findUiImage4Map"
parameterType="com.pisen.cloud.luna.ms.ten.ui.config.base.domain.UiImage"
resultType="java.util.HashMap">

select
uid,
imgUrl
from
ui_image uii
<where>
<if test="imgType != null and imgType != '' ">
AND
uii.img_type = #imgType
</if>

<if test="uploadDate != null and uploadDate != '' ">
AND
DATE_FORMAT(uii.upload_date,'%Y-%m-%d') = DATE_FORMAT(#uploadDate,'%Y-%m-%d')
</if>

</where>

</select>

如上,现在如果不传imgType 和uploadDate 的话,需要返回空,而不是省略where导致全表查询,应该怎么写对应代码?

直接在select外层加if test判断,或者里面加一个如果两个参数都是Null,则1=2,这样都不符合条件,查不到结果。 参考技术A service层直接java判断参数都为空,直接返回null或空集合,而不是继续去调dao层获取数据。

以上是关于mybatis怎么设置当不满足所有if test的条件则返回空?的主要内容,如果未能解决你的问题,请参考以下文章

mybatis if test 判断字符串的坑

MyBatis—07—DQL: 动态SQL查询;

mybatis里的页面的if标签怎么用

142. Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案二:@Provider

程序结构和数组

mybatis <if test> 标签问题