Mybatis-plus LambdaQuery: 联查两个表并返回JSON数据
假设你的两个表名分别为ip_address和ip_detail,可以使用Mybatis-plus的wrapper来实现两表联查,然后使用Jackson等JSON序列化库将结果转换成JSON格式。具体代码如下:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class IpService {
@Autowired
private IpAddressMapper ipAddressMapper;
@Autowired
private IpDetailMapper ipDetailMapper;
public String getIpJson(String ip) {
QueryWrapper<IpAddress> ipAddressWrapper = new QueryWrapper<>();
ipAddressWrapper.eq('ip_address', ip);
IpAddress ipAddress = ipAddressMapper.selectOne(ipAddressWrapper);
QueryWrapper<IpDetail> ipDetailWrapper = new QueryWrapper<>();
ipDetailWrapper.eq('ip_address_id', ipAddress.getId());
IpDetail ipDetail = ipDetailMapper.selectOne(ipDetailWrapper);
ObjectMapper objectMapper = new ObjectMapper();
try {
return objectMapper.writeValueAsString(ipDetail);
} catch (JsonProcessingException e) {
// 异常处理
return null;
}
}
}
这里使用了两个QueryWrapper来实现两表联查,其中'ip_address_id'是'ip_detail'表中关联'ip_address'表的外键。在查询完成后,使用Jackson的ObjectMapper将结果转换成JSON格式返回。
原文地址: http://www.cveoy.top/t/topic/mKkF 著作权归作者所有。请勿转载和采集!