Mybatis-Plus 联合查询两个表并返回 JSON 数据
你可以使用Mybatis-Plus的Wrapper类来实现两个表的联合查询。
首先,你需要定义一个VO类,用于存放两个表的联合查询结果。例如:
@Data
public class IpDetailVO {
private String ip;
private String country;
private String region;
private String city;
private String isp;
// 其他字段
}
然后,你可以使用Wrapper类来实现联合查询。例如:
QueryWrapper<IpAddress> wrapper = new QueryWrapper<>();
wrapper.eq('ip', '127.0.0.1');
IpAddress ipAddress = ipAddressMapper.selectOne(wrapper);
QueryWrapper<IpDetail> detailWrapper = new QueryWrapper<>();
detailWrapper.eq('ip_id', ipAddress.getId());
IpDetail ipDetail = ipDetailMapper.selectOne(detailWrapper);
IpDetailVO vo = new IpDetailVO();
vo.setIp(ipAddress.getIp());
vo.setCountry(ipDetail.getCountry());
vo.setRegion(ipDetail.getRegion());
vo.setCity(ipDetail.getCity());
vo.setIsp(ipDetail.getIsp());
// 设置其他字段
String json = JSON.toJSONString(vo);
System.out.println(json);
这里,我们先使用Wrapper类查询出对应的IpAddress和IpDetail对象,然后将它们的属性设置到VO对象中,最后将VO对象转换成JSON字符串即可。
当然,如果你需要查询多条数据,可以使用Mybatis-Plus的Wrapper类的其他方法,如eq、in、like等,来实现更丰富的查询条件。
原文地址: https://www.cveoy.top/t/topic/mKso 著作权归作者所有。请勿转载和采集!