mybatis的动态sql之if test的使用说明
参数为String,iftest读取该参数代码
SELECTMAX(DEPART_ID)FROMT_P_DEPART ANDDEPART_PID=#{departId,jdbcType=VARCHAR} ANDDEPART_PIDISNULL
参数为pojo,iftest读取该参数代码
select*fromshop shop.shopnamelike'%${shopCustomer.shopname}%' ANDshop.shopnameisnull
补充:关于mybatis中iftest的条件怎么写
1.mybatis中的iftest写法
1.1官方文档上对于if是这么写的
ANDtitlelike#{title}
参考官方文档:
实际项目中会有这种情况:页面上title字段输入某个值进行查询,手动将输入框中的值删除,然后再次查询,发现结果不正确,究其原因是应为title传入了空串""这样在mybatis配置文件中就会用空串进行查询,导致出现错误结果
1.2建议写法
ANDtitlelike#{title}
2.使用mybatis做修改时将字段置空
if中如果传入的参数如果为空,那么将不会执行if中的语句
解决办法:
updatetable where1=1andid=#{companyOrg.id} full_name=null, full_name=#{companyOrg.fullName}, level=null, level=null, level=#{companyOrg.level},
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。