在 MyBatis 中模糊查询 like 语句该怎么写

在 MyBatis 中,可以使用${}或#{}来拼接 SQL 语句中的参数 。在进行模糊查询时,需要使用通配符 % 表示任意字符,具体写法如下:

  • 使用${}:
【在 MyBatis 中模糊查询 like 语句该怎么写】<select id="selectUsersByName" resultType="User">SELECT * FROM user WHERE name LIKE '%${name}%' </select>在这种方式下,${}会直接将传入的参数拼接到 SQL 语句中,容易受到 SQL 注入攻击 。
  • 使用#{}:
<select id="selectUsersByName" resultType="User">SELECT * FROM user WHERE name LIKE CONCAT('%', #{name}, '%') </select>在这种方式下,#{}会使用预编译语句来处理参数,可以防止 SQL 注入攻击 。同时,MyBatis 还提供了CONCAT()函数来连接字符串,避免使用字符串拼接运算符+ 。
需要注意的是,使用#{}时,如果传入的参数是 null,MyBatis 会将它转换成一个空字符串 。因此,在使用模糊查询时,需要对参数进行非空判断,避免查询结果异常 。




    推荐阅读