mybatis模糊查询
时间: 2023-11-07 20:12:40 浏览: 33
MyBatis 支持模糊查询的方式有多种,以下是其中几种常用的方式:
1. 使用通配符 `%` 进行模糊查询,例如:
```xml
<select id="getUserByName" resultType="User">
SELECT * FROM user WHERE name LIKE '%${name}%'
</select>
```
在这个示例中,`${name}` 是变量,表示查询条件中的名称。`LIKE` 表示模糊匹配,`%` 表示匹配任意字符,包括零个字符。
2. 使用 CONCAT 函数进行字符串拼接,例如:
```xml
<select id="getUserByName" resultType="User">
SELECT * FROM user WHERE name LIKE CONCAT('%', #{name}, '%')
</select>
```
在这个示例中,`#{name}` 是变量,表示查询条件中的名称。`CONCAT` 函数可以将多个字符串拼接成一个字符串,这里用它将 `%` 与变量拼接成一个模糊匹配的字符串。
3. 使用 MyBatis 提供的通用 Mapper 进行模糊查询,例如:
```java
List<User> userList = userMapper.selectByExample(
Example.builder(User.class)
.where(WhereClauseBuilder.custom()
.andLike("name", "%" + name + "%")
.build())
.build());
```
在这个示例中,我们使用了 MyBatis 提供的通用 Mapper,通过 `Example` 对象构建查询条件。`WhereClauseBuilder.custom()` 表示自定义查询条件,`andLike` 表示模糊匹配,这里用它将 `%` 与变量拼接成一个模糊匹配的字符串。