mybatisplus实现模糊查询
时间: 2023-08-25 21:11:24 浏览: 169
在MyBatis-plus中,可以使用EntityWrapper类来实现模糊查询。首先,你需要创建一个EntityWrapper对象,并在构造函数中传入需要模糊查询的表对应的model对象。然后,通过调用like方法来指定需要模糊查询的字段和值。比如,如果你需要在firstname和lastname字段中模糊查询包含"海"的记录,可以使用如下代码:
```
new EntityWrapper<>(userInfo).like("firstname", "海").or().like("lastname", "海");
```
这段代码会生成一个类似于以下的SQL语句:
```
SELECT * FROM users WHERE (firstname LIKE '%海%' OR lastname LIKE '%海%')
```
另外,在使用MyBatis-plus的时候,一些基础的增删改查可以直接使用BaseMapper接口提供的方法,而不需要再自己写SQL语句。所以,你可以在Dao层的接口中继承BaseMapper<T>,其中T是对应表的model对象。这样,你就可以直接使用BaseMapper提供的方法来进行模糊查询了。
需要注意的是,默认的like查询会在查询条件的左右两边都添加%,即类似于"NAME = '%王%'"的形式。如果你只需要在左边或者右边拼接%,可以使用likeLeft或者likeRight方法。其他更复杂的模糊查询可以根据具体需求使用EntityWrapper的其他方法来实现。
相关问题
Mybatisplus实现模糊查询
Mybatisplus实现模糊查询可以通过以下方式实现:
1. 使用Wrapper的like方法
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "张");
List<User> userList = userMapper.selectList(queryWrapper);
```
2. 使用Wrapper的lambda方式
```java
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.like(User::getName, "张");
List<User> userList = userMapper.selectList(lambdaQueryWrapper);
```
其中,like方法中的第一个参数是字段名,第二个参数是查询的值,可以使用通配符来实现模糊查询,例如:
```java
queryWrapper.like("name", "%张%");
```
或者:
```java
lambdaQueryWrapper.like(User::getName, "%张%");
```
以上两种方式都可以实现模糊查询,具体使用哪种方式,可以根据自己的喜好和项目需求来选择。
mybatisplus 分页模糊查询
可以使用 MybatisPlus 提供的 Page 类和 QueryWrapper 类来实现分页模糊查询。
示例代码如下:
```java
Page<User> page = new Page<>(1, 10); // 第一页,每页显示10条记录
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("username", "张三"); // 模糊查询用户名中包含“张三”的记录
IPage<User> userPage = userService.page(page, wrapper); // 执行分页查询
List<User> userList = userPage.getRecords(); // 获取查询结果列表
```
其中,`userService` 是一个 MybatisPlus 的 Service 类,`User` 是实体类,`username` 是实体类中的属性名。