mybatis-plus两表关联查询
时间: 2023-06-05 17:48:00 浏览: 232
MyBatis-Plus多表联合查询并且分页(3表联合)
5星 · 资源好评率100%
Mybatis-Plus可以通过注解或XML配置实现两个表的关联查询。具体步骤如下:
1. 在实体类中定义关联属性,例如:
```
public class User {
private Long id;
private String name;
private Integer age;
private Long roleId;
// 省略getter和setter方法
@TableField(exist = false)
private Role role;
}
```
其中,@TableField(exist = false)表示该属性不是数据库表中的字段。
2. 在Mapper接口中定义关联查询方法,例如:
```
public interface UserMapper extends BaseMapper<User> {
@Select("SELECT u.*, r.name AS role_name FROM user u LEFT JOIN role r ON u.role_id = r.id WHERE u.id = #{id}")
User selectUserWithRole(Long id);
}
```
其中,LEFT JOIN表示左连接,#{id}表示参数占位符,AS表示别名。
3. 在Service层调用Mapper方法,例如:
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User getUserWithRole(Long id) {
return userMapper.selectUserWithRole(id);
}
}
```
其中,@Autowired表示自动注入UserMapper对象。
4. 在Controller层调用Service方法,例如:
```
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User getUserWithRole(@PathVariable Long id) {
return userService.getUserWithRole(id);
}
}
```
其中,@GetMapping表示GET请求,@PathVariable表示路径参数。
这样就可以实现两个表的关联查询了。
阅读全文