mybatis-plus模糊分页查询
时间: 2023-04-26 16:03:03 浏览: 303
mybatis-plus模糊分页查询可以通过使用Wrapper构建查询条件,然后使用Page对象进行分页查询。其中,模糊查询可以使用like方法,例如:
```
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("username", "张三");
Page<User> page = new Page<>(1, 10);
IPage<User> userPage = userMapper.selectPage(page, wrapper);
```
上述代码中,使用QueryWrapper构建查询条件,使用like方法进行模糊查询,然后使用Page对象进行分页查询,最后使用selectPage方法进行查询。查询结果会返回一个IPage对象,其中包含了查询结果和分页信息。
相关问题
mybatis-plus分页模糊查询
使用Mybatis-Plus进行分页模糊查询,可以通过以下步骤实现:
1. 在Mapper接口中定义分页查询方法,使用@Select注解指定SQL语句,使用@Param注解指定参数。
2. 在SQL语句中使用LIKE关键字进行模糊查询,使用LIMIT关键字进行分页查询。
3. 在Service层调用Mapper接口中定义的分页查询方法,传入分页参数和模糊查询参数。
4. 在Controller层中接收前端传来的分页参数和模糊查询参数,调用Service层中的方法进行查询。
5. 将查询结果封装成Page对象返回给前端。
示例代码:
Mapper接口:
@Mapper
public interface UserMapper extends BaseMapper<User> {
@Select("SELECT * FROM user WHERE name LIKE CONCAT('%',#{name},'%') LIMIT #{offset},#{limit}")
List<User> selectUserList(@Param("name") String name, @Param("offset") int offset, @Param("limit") int limit);
}
Service层:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public Page<User> getUserList(String name, int pageNum, int pageSize) {
Page<User> page = new Page<>(pageNum, pageSize);
List<User> userList = userMapper.selectUserList(name, page.getOffset(), page.getLimit());
page.setRecords(userList);
return page;
}
}
Controller层:
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/list")
public Page<User> getUserList(@RequestParam(required = false) String name,
@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize) {
return userService.getUserList(name, pageNum, pageSize);
}
}
mybatis-plus分页查询代码示例
MyBatis-Plus是一个集成了很多方便开发功能的MyBatis增强工具包,其中包括分页查询功能。下面是一个MyBatis-Plus分页查询的代码示例:
首先,在Mapper层中编写一个查询方法,使用MyBatis-Plus提供的Page对象来实现分页查询:
```java
public interface UserMapper extends BaseMapper<User> {
/**
* 根据用户名模糊查询,分页返回结果
*
* @param page 分页参数
* @param userName 用户名模糊查询条件
*/
IPage<User> selectUserPage(Page<?> page, String userName);
}
```
然后,在Service层中调用Mapper层的查询方法,传入分页参数和查询条件即可实现分页查询:
```java
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public IPage<User> selectUserPage(int pageNum, int pageSize, String userName) {
Page<User> page = new Page<>(pageNum, pageSize);
return baseMapper.selectUserPage(page, userName);
}
}
```
最后,在Controller层中接收前端传入的分页参数和查询条件,并将查询结果返回给前端:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/list")
public JsonResult listUsers(@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize,
@RequestParam(required = false) String userName) {
IPage<User> userList = userService.selectUserPage(pageNum, pageSize, userName);
return JsonResult.success(userList);
}
}
```
通过以上三个步骤,我们就实现了使用MyBatis-Plus进行分页查询的功能。需要注意的是,在前端传入的pageNum默认值设为1,pageSize默认值设为10,即每页显示10条数据;同时,我们使用了自定义的JsonResult类来封装接口返回结果。