mybatis模糊查询
时间: 2023-06-22 10:38:14 浏览: 58
MyBatis支持模糊查询,可以使用通配符来实现模糊匹配,例如使用 `%` 表示匹配0个或多个字符,使用 `_` 表示匹配任意一个字符。
下面是一个使用 MyBatis 实现模糊查询的示例:
假设我们有一个 User 表,其中包含了一个 name 字段,我们要查询 name 中包含 "Tom" 的所有用户,可以使用如下的 SQL 语句:
```sql
SELECT * FROM user WHERE name LIKE '%Tom%';
```
在 MyBatis 中,可以使用 `<if>` 标签来实现动态 SQL,结合 LIKE 关键字实现模糊查询,例如:
```xml
<select id="getUserByName" resultType="User">
SELECT * FROM user
<where>
<if test="name != null">
AND name LIKE CONCAT('%', #{name}, '%')
</if>
</where>
</select>
```
在上面的示例中,我们使用了 `<if>` 标签来判断 name 是否为 null,如果不为 null,则在 SQL 中添加一个 LIKE 条件,使用 CONCAT 函数将 `%` 和查询参数拼接起来,实现模糊查询。
相关问题
Mybatis模糊查询
Mybatis是一种Java持久化框架,它提供了一种简单而强大的方式来进行数据库操作。在Mybatis中,模糊查询可以通过使用通配符或者正则表达式来实现。
通配符查询是指使用特殊字符来代替一个或多个字符,常用的通配符有:
- %:表示任意字符出现任意次数
- _:表示任意单个字符
在Mybatis中,可以使用LIKE关键字结合通配符来进行模糊查询。例如,如果要查询名字以"张"开头的用户,可以使用以下语句:
```
SELECT * FROM user WHERE name LIKE '张%'
```
这样就可以查询到名字以"张"开头的用户。
另外,Mybatis还支持使用正则表达式进行模糊查询。可以使用MySQL的REGEXP关键字来实现。例如,如果要查询名字中包含"张"的用户,可以使用以下语句:
```
SELECT * FROM user WHERE name REGEXP '张'
```
这样就可以查询到名字中包含"张"的用户。
myBatis模糊查询
使用Spring Boot和MyBatis进行模糊查询非常简单。您可以使用MyBatis的动态SQL功能来构建模糊查询语句。
以下是一个示例:
```java
@Mapper
public interface UserMapper {
@Select("SELECT * FROM users WHERE name LIKE CONCAT('%',#{name},'%')")
List<User> findUsersByName(String name);
}
```
在上面的示例中,我们使用了MyBatis的动态SQL功能来构建一个模糊查询语句。我们使用了`CONCAT`函数来将`%`符号与查询参数`name`连接起来,从而构建了一个模糊查询语句。
您可以在Spring Boot应用程序中使用这个Mapper接口来执行模糊查询。例如:
```java
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> findUsersByName(String name) {
return userMapper.findUsersByName(name);
}
}
```
在上面的示例中,我们注入了`UserMapper`接口,并在`UserService`中使用它来执行模糊查询。