springboot+mybatisplus 联表分页模糊查询
时间: 2023-09-05 12:08:41 浏览: 136
要在 Spring Boot 中使用 Mybatis-Plus 进行联表分页模糊查询,可以按照以下步骤进行操作:
1. 添加 Mybatis-Plus 依赖
在 pom.xml 文件中添加 Mybatis-Plus 的依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.1</version>
</dependency>
```
2. 创建实体类
创建需要查询的实体类,并使用 `@TableName` 注解指定数据库表名,`@TableField` 注解指定该字段对应的数据库列名。
```java
@Data
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
@TableField("name")
private String name;
@TableField("age")
private Integer age;
@TableField("address")
private String address;
}
```
3. 创建 Mapper 接口
创建 Mapper 接口,并继承 Mybatis-Plus 的 `BaseMapper` 接口,可以直接使用 Mybatis-Plus 提供的方法进行数据库操作。
```java
public interface UserMapper extends BaseMapper<User> {
List<User> selectUserPage(Page<User> page, @Param("name") String name, @Param("address") String address);
}
```
4. 编写 SQL
编写需要执行的 SQL,可以使用 Mybatis-Plus 提供的 `Wrapper` 类进行条件拼接。
```java
public class UserWrapper extends QueryWrapper<User> {
public UserWrapper likeName(String name) {
if (StringUtils.isNotBlank(name)) {
like("name", name);
}
return this;
}
public UserWrapper likeAddress(String address) {
if (StringUtils.isNotBlank(address)) {
like("address", address);
}
return this;
}
}
```
5. 编写 Service 层
在 Service 层中调用 Mapper 接口,可以使用 Mybatis-Plus 提供的 `Page` 类进行分页查询。
```java
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public Page<User> selectUserPage(int pageNum, int pageSize, String name, String address) {
Page<User> page = new Page<>(pageNum, pageSize);
List<User> userList = baseMapper.selectUserPage(page, name, address);
page.setRecords(userList);
return page;
}
}
```
6. 编写 Controller 层
在 Controller 层中调用 Service 层,可以使用 Spring MVC 提供的 `@RequestParam` 注解获取请求参数。
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/page")
public Page<User> selectUserPage(@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize,
@RequestParam(required = false) String name,
@RequestParam(required = false) String address) {
return userService.selectUserPage(pageNum, pageSize, name, address);
}
}
```
这样就完成了在 Spring Boot 中使用 Mybatis-Plus 进行联表分页模糊查询。
阅读全文