<select id="" resultType="">
select * from tbl_employee where last_name like #{lastName}
</select>
一般我们进行模糊查询时,都会输入:
List<Employee> employees = mapper.getEmpByLastNameLike("%o%");
如果我们想在xml文件中进行这种处理:
"%#{lastName}%"
这样肯定是不行的,#{}只是个占位符,"%#{lastName}%"会被当做一整个字符串。
当然我们可以这样做:
"%${lastName}%"
但是这样不安全,此时就可以使用bind标签:
<!-- bind:可以将OGNL表达式的值绑定到一个变量中,方便后来引用这个变量的值 -->
<bind name="lastName" value="'%'+lastName+'%'"/>
<if test="_databaseId=='mysql'">
select * from tbl_employee
<if test="_parameter!=null">
where last_name like #{lastName}<!-- 这里使用到lastName -->
</if>
</if>
说明:bind标签中name是为该值取别名,value是其具体的值,可以使用ongl表达式。