MyBatis 学习笔记

@bingoogolapple 2017-04-07 12:53:23发表于 bingoogolapple/bingoogolapple.github.io Database

LIKE 查询

这种形式不能用 #,会报错

<if test="roleName != null and roleName!=''">
    AND r.roleName LIKE '%#{roleName, jdbcType=VARCHAR}%'
</if>

用 $ 不能防 SQL 注入

<if test="roleName != null and roleName!=''">
    AND r.roleName LIKE '%${roleName}%'
</if>

这种是以 ? 的形式

<if test="roleName != null and roleName!=''">
    AND r.roleName LIKE concat('%',#{roleName,jdbcType=VARCHAR},'%')
</if>

这种也是以 ? 的形式「必须用双引号来包裹百分号,否则查不出来数据」

<if test="roleName != null and roleName!=''">
    AND r.roleName LIKE "%"#{roleName,jdbcType=VARCHAR}"%"
</if>