mybatis系列教程:一对多数据操作
技术依赖:如无特殊说明;所有配置和技术选型均采用Ruoyi-vue快速开发框架
SpringBoot
Mybatis
Mysql
vue-element ui
说明:一个订单中有多种商品;所以有一个订单表有一个订单详情表
说明问题:
表结构设计:
订单表:order
order_id 订单表ID
订单详情表:order_items
id :详情表ID
order_id:订单表ID
goods_id:商品ID
增加订单:
Controller层代码:
mybatis xml的写法
collection主要是应对表关系是一对多的情况
property:属性
javaType:
<resultMap>
<result property="orderId" column="order_id" />
<result property="goodsAmount" column="goods_amount" />
<collection property="orderItems" column="dept_id" javaType="java.util.List" resultMap="orderItemsResult" />
</resultMap>
<resultMap id="YshopOrderItemsResult" type="orderItems">
<id property="id" column="id" />
<result property="goodsId" column="goods_id"/>
<result property="price" column="price"/>
</resultMap>
也可以这样写
<resultMap type="YshopGoodsType" id="YshopGoodsTypeResult">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="params" column="params" />
<collection property="students" ofType="Student">
<result property="id" column="sid"/>
<result property="name" column="sname"/>
<result property="tid" column="tid"/>
</collection>
<collection property=""></collection>
</resultMap>
SQL语句
前端返回一条详情信息
/*java代码*/
public Order selectById()
select * from order left join order_items on order.id=order_items.order_id where order.id=100;
方式二:mybatis 一对多查询方式二
相关文章:
《事务的处理》
https://blog.csdn.net/weixin_46645338/article/details/123987406
https://blog.csdn.net/weixin_45877245/article/details/119821218
[1]: