Mybatis中有关if标签中test的使用

Ivan.Liao 2019-03-07 10:06:56

这个方法里面有三个参数,第一个参数是可选的,所以在xml文件中我使用了if标签



在这种情况下,参数名为#{0} #{1} #{2},在test中#{}要去掉,这样就变成0了 0!=0 mybais无法识别0到底是参数名字还是数字0

求大神解答。

或者有其他取值的方案是我不知道的,在线等!
...全文
1662 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ivan.Liao 2019-03-11
  • 打赏
  • 举报
回复
已经找到解决方案,为每个参数起个名字,用@Param注解,这样就可以使用我们起的名字来写test里的内容了
mr_foxsand 2019-03-08
  • 打赏
  • 举报
回复
#{0}不是输入一个0,是表示参数中的第一个参数! #{}里面直接写参数的名字,不要用0,1这些序号。这样就可以了 例如:
WHERE id = #{id} OR parent_ids LIKE 
					<if test="dbName == 'oracle'">'%,'||#{id}||',%'</if>
					<if test="dbName == 'mssql'">'%,'+#{id}+',%'</if>
					<if test="dbName == 'mysql'">CONCAT('%,', #{id}, ',%')</if>
petrarca 2019-03-07
  • 打赏
  • 举报
回复
不要用占位符吧!貌似OGnl就是这样约束的

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧