springboot连表查询
时间: 2023-11-14 10:12:03 浏览: 128
Spring Boot中的连表查询可以通过MyBatis-Plus框架来实现。具体步骤如下:
1. 在实体类中定义关联关系,例如在User实体类中定义一个组织实体类的引用。
2. 在Mapper接口中定义关联查询的方法,可以使用MyBatis-Plus提供的Wrapper类来构建查询条件。
3. 在Service层中调用Mapper接口中的方法进行查询,并将查询结果封装成需要的VO对象。
4. 在Controller层中调用Service层中的方法,将查询结果返回给前端。
具体实现可以参考以下代码:
引用[1]:
```
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService; //注入userService
@GetMapping("/list")
public List<UserVo> voList(){
return this.userService.voList();
}
}
```
引用:
```
<select id="getBlogById" resultType="Blog" resultMap="blog" parameterType="Integer">
select * from m_blog
<where>
<trim suffixOverrides="and" prefixOverrides="and">
id= #{id}
</trim>
</where>
</select>
```
引用:
```
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Resource
private UserMapper userMapper;
@Resource
private OrganizationMapper organizationMapper;
@Override
public List<UserVo> voList() {
List<User> userList = this.userMapper.selectList(null); //获取所有用户信息
List<UserVo> userVoList = new ArrayList<>(); //定义一个VO对象的List集合
for (User user : userList) {
UserVo userVo = new UserVo(); //定义一个VO对象
BeanUtils.copyProperties(user, userVo); //将User对象的属性复制到VO对象中
QueryWrapper<Organization> queryWrapper = new QueryWrapper<>(); //定义一个查询条件
queryWrapper.eq("org_id",user.getUserOrgId()); //比较数据库中org_id与传入的用户所属组织ID
Organization org = this.organizationMapper.selectOne(queryWrapper); //将条件传入就能拿到一个组织信息
userVo.setUserOrgName(org.getOrgName()); //通过get就能拿到这个组织信息中的名称信息
userVoList.add(userVo); //将VO对象添加到List集合中
}
return userVoList; //返回VO对象的List集合
}
}
```
阅读全文