MyBatis Plus 中 ESCAPE
时间: 2023-10-30 13:20:40 浏览: 71
MyBatis Plus 中的 `ESCAPE` 是用于在进行模糊查询时,指定转义字符的关键字。
在进行模糊查询时,`_` 表示任意单个字符,`%` 表示任意多个字符。但是,有时候我们需要查询包含 `_` 或 `%` 的实际字符,而不是通配符。这时就需要指定转义字符。
在 MyBatis Plus 中,可以使用 `QueryWrapper` 的 `like` 方法进行模糊查询,并通过 `escape` 方法指定转义字符。例如,如果要查询包含下划线的字符串,可以这样写:
```
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("name", "%\\_%").escape('\\');
List<User> userList = userMapper.selectList(wrapper);
```
其中,`escape` 方法指定了转义字符为反斜杠 (`\`)。这样,查询语句就会将 `_` 视为普通字符,而不是通配符。
如果不指定转义字符,MyBatis Plus 会默认使用反斜杠 (`\`) 作为转义字符。如果查询语句中本身存在反斜杠,需要将其转义为两个反斜杠 (`\\`)。例如,如果要查询包含反斜杠的字符串,可以这样写:
```
wrapper.like("name", "%\\\\%").escape('\\');
```
其中,`\\\\` 表示转义后的反斜杠,`%` 表示任意字符。
需要注意的是,在使用转义字符进行查询时,需要注意转义字符的数量和位置,否则可能会导致查询结果不正确。
阅读全文