mybatisplus模糊搜索
时间: 2023-11-13 12:56:16 浏览: 90
好的,针对mybatisplus模糊搜索,你可以使用mybatisplus提供的QueryWrapper类中的like方法来实现。具体操作如下:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("name", "张"); // 模糊搜索名字中包含“张”的用户
List<User> userList = userMapper.selectList(wrapper);
```
其中,第一个参数是要搜索的字段名,第二个参数是要搜索的关键字。如果要实现全局模糊搜索,可以使用or方法:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("name", "张").or().like("email", "张"); // 模糊搜索名字或邮箱中包含“张”的用户
List<User> userList = userMapper.selectList(wrapper);
```
相关问题
Mybatisplus 分页模糊查询
### MyBatisPlus 分页与模糊查询实现
#### 使用 `Page` 类进行分页操作
为了在项目中使用 MyBatis-Plus 的分页功能,需创建一个 `Page<T>` 对象来封装分页参数。此对象接收两个主要参数:当前页面编号以及每页显示的数据条目数[^1]。
```java
// 创建 Page 对象实例化时指定第几页和每页多少条数据
Page<User> page = new Page<>(current, size);
```
#### 配置 PaginationInterceptor 插件
确保已正确配置了 `PaginationInterceptor` 插件;否则即使调用了诸如 `selectPage()` 这样的 API 方法也不会生效,因为缺少必要的拦截器支持[^2]。
```xml
<!-- application.yml 或者通过 Java Config 方式 -->
mybatis-plus:
configuration:
interceptors:
- com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor
```
#### 执行带有条件的分页查询
当需要结合特定条件(比如字段值部分匹配即模糊查询)来进行分页检索时,在构建查询条件时可以利用 Wrapper 接口提供的多种方法之一——like() 来完成[^3]。
```java
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("name", "张三"); // name 字段包含 '张三' 关键字
IPage<User> userPageInfo = userService.page(page, queryWrapper);
```
上述代码片段展示了如何基于用户名的部分字符串执行模糊搜索并返回相应的分页结果集。
#### 结合 Lambda 表达式的写法优化
对于更复杂的业务逻辑场景下推荐采用 lambda 形式的 wrapper 编程风格以提高可读性和维护性:
```java
LambdaQueryWrapper<User> lambdaQueryWrapper = Wrappers.<User>lambdaQuery();
lambdaQueryWrapper.like(User::getName, "李四");
userService.page(page, lambdaQueryWrapper);
```
这段代码同样实现了针对用户姓名含有 “李四” 的记录做分页展示的功能需求。
mybatisplus实现模糊分页查询
MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。在MyBatis-Plus中实现模糊分页查询可以通过定义一个Wrapper条件构造器,比如QueryWrapper,并使用其提供的like方法来指定需要模糊查询的字段。
以下是使用MyBatis-Plus进行模糊分页查询的一个简单示例:
```java
// 导入QueryWrapper类
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
// 创建QueryWrapper对象
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// 添加模糊查询条件,第一个参数为字段名,第二个参数为要查询的关键字
queryWrapper.like("name", "关键字");
// 使用Page对象进行分页处理
Page<User> page = new Page<>(当前页码, 每页显示的数量);
// 执行分页查询
Page<User> resultPage = userMapper.selectPage(page, queryWrapper);
// resultPage对象中包含了查询结果和分页信息
```
在上面的代码中,`userMapper`是MyBatis-Plus的Mapper接口,它继承了BaseMapper,`selectPage`是BaseMapper提供的分页查询方法。`QueryWrapper`用于构建查询条件,`like`方法用于添加模糊查询的条件,`"name"`是要查询的字段,`"关键字"`是实际的搜索内容。
请注意,为了能够分页查询,你的Mapper接口中需要定义好相应的分页查询方法,并且在MyBatis的XML配置文件中或者使用注解的方式定义好对应的SQL语句。
阅读全文
相关推荐















