mybatis 使用记录(二) 动态拼接查询条件

时间:2022-01-20 08:26:53

2016-12-16

阅读项目代码时,在项目的xml文件中发现如下写法:

SELECT
student_user_id
FROM
tbr_student_class

WHERE 1=1
<if test="@Ognl@isNotEmpty(classId)">
and class_id =#{classId}
</if>

<if test="@Ognl@isNotEmpty(stuId)">
and student_user_id =#{stuId}
</if>

写法的意思是:当参数:classId 不为空的时候,执行后面的条件 and class_id=#{classId}

该写法类似于在c#或java代码中,动态拼写sql语句。此处为动态拼接查询条件。

新问题:以上代码中的if条件语句里,参数判断用了转义?此处的写法跟搜索出的结果不同,此处应该是用了转义。尚待考证。