mybatis的动态sql之if test的使用说明

网友投稿 367 2022-11-04


mybatis的动态sql之if test的使用说明

参数为String,if test读取该参数代码

SELECT MAX(DEPART_ID) FROM T_P_DEPART

NFYxi

AND DEPART_PID = #{departId,jdbcType=VARCHAR}

AND DEPART_PID IS NULL

参数为pojo , if test读取该参数代码

select * from shop

shop.shopname like '%${shopCustomer.shopname}%'

AND shop.shopname is null

补充:关于mybatis中 if test的条件怎么写

1.mybatis 中 的 if test写法

1.1官方文档上对于if是这么写的

AND title like #{title}

参考官方文档:

实际项目中会有这种情况: 页面上title字段输入某个值进行查询,手动将输入框中的值删除,然后再次查询,发现结果不正确,究其原因是应为title传入了空串" " 这样在mybatis配置文件中就会用空串进行查询,导致出现错误结果

1.2建议写法

AND title like #{title}

2.使用mybatis 做修改时将字段置空

if中如果传入的参数如果为空,那么将不会执行if中的语句

解决办法:

update table

full_name = null,

full_name = #{companyOrg.fullName},

level = null,

level = null,

level = #{companyOrg.level},

where 1=1 and id =#{companyOrg.id}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:sci影响因子查询API(sci影响因子查询APP)
下一篇:oracle 的sys 和 system 账号
相关文章

 发表评论

暂时没有评论,来抢沙发吧~