在使用mybatis 有时候需要进行判断的。

而我们知道mybatis获取值有两种方式 #{}和${}的。

那么,在mybatis if test语句中怎么使用呢?

是使用#{}还是${} 或是其他?

测试1:使用${}

【记录】mybatis if test标签使用一次小总结_sql

运行后果:

【记录】mybatis if test标签使用一次小总结_sql_02

后台报错了。

说明使用${}是不行的。

测试2:使用#{}

测试代码:

【记录】mybatis if test标签使用一次小总结_数据_03

当type==2时候打印sql:

【记录】mybatis if test标签使用一次小总结_sql_04

当type==1时候打印sql:

【记录】mybatis if test标签使用一次小总结_数据_05

我们发现type=1和type=2时候sql是一样的。和我们预想的不一样。

查询的数据也不对。

结论使用#{}也是不行的。

测试三:什么都不用:

【记录】mybatis if test标签使用一次小总结_数据_06

当type==1打印sql:

【记录】mybatis if test标签使用一次小总结_获取值_07

当type==2打印sql:

【记录】mybatis if test标签使用一次小总结_数据_08

和我们预期的一样。

总结,mybatis if test 不需要使用#或是$获取值。