多表查询涉及多个实体类的返回值如何Controller获取
实体类
订单表--商品表
public class Orders {
private Integer orderId;
private Integer userId;
private Integer goodsId;
private Integer payId;
private Integer gsId;
private Integer orderNum;
private Integer orderMoney;
private String orderTime;
private String distribution;
private User user;
private Goods goods;
private Pay pay;
private GoodsState goodsState;
public class Goods {
private Integer goodsId;
private String goodsName;
private String goodsImg;
private Float goodsPrice;
private Integer goodsResidue;
private String goodsType;
private Integer goodsSales;
private Integer goodsSort;
private Integer goodsState;
private String goodsPoint;
private Integer goodsSpecifications;
private Float goodsWeight;
private String goodsInfo;
private String createTime;
在订单实体类中以Goods goods 作为对象属性,可以用来接收链表查询时的返回值
Controller
public class OrdersController {
@Autowired
private GoodsService goodsService;
@Autowired
private OrdersService ordersService;
@Autowired
private PayService payService;
@RequestMapping("orders")
public String showOrders(){
//查询订单
List<Orders> ordersList = ordersService.selectAllOrders();
//System.out.println(ordersList.get(0).getGoods().getGoodsImg());
for (Orders orders:ordersList){
System.out.println(orders.getGoods().getGoodsImg());//循环输出已经获取的内容
//System.out.println(ordersList.get(i));
}
OrdersService
public interface OrdersService {
List<Orders> selectAllOrders();
}
OrdersServiceImpl
@Service
public class OrdersServiceImpl implements OrdersService {
@Autowired
private OrdersMapper ordersMapper;
@Override
public List<Orders> selectAllOrders() {
return ordersMapper.selectAllOrders();
}
}
OrdersMapper
@Repository
public interface OrdersMapper {
List<Orders> selectAllOrders();
}
.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.nnxy.fireflymall.mapper.OrdersMapper">
<resultMap id="orderss" type="cn.nnxy.fireflymall.domain.Orders">
<id property="orderId" column="order_id"/>
<result property="goodsId" column="goods_id"/>
<association property="goods" column="goods_id" javaType="cn.nnxy.fireflymall.domain.Goods"
select="cn.nnxy.fireflymall.mapper.GoodsMapper.selectGoodsById">
这里select找到Goods获取数据库的方法(在下面)将查询的结果goods_id作为条件用来重新查询
</association>
</resultMap>
<select id="selectAllOrders" resultMap="orderss">
select goods.goods_id,goods.goods_img
from orders
inner join goods on orders.goods_id=goods.goods_id
</select>
</mapper>
GoodsMapper
接收.xml传来的goods_id作为查询条件
List<Goods> selectFormGoods(Integer goodsId);
最后就是controller获取到了想要的结果。
如果对你有帮助,记得给个关注点个赞!