022.OneToMany对象关联查询(多表级联查询)

相关标签:
1.案例分析
1.班级(1)---> 学生 (n) 学生必须持有班级的外键
2.1对1 通过主键关联
3.多对多必须单独抽象出一张中间表
2.商品和详情对象关联查询(一对多)
2.1 创建商品描述详情的实体类
package com.imooc.mybatis.entity;
public class GoodsDetail {
private Integer gdId;
private Integer goodsId;
private String gdPicUrl;
private Integer gdOrder;
public Integer getGdId() {
return gdId;
}
public void setGdId(Integer gdId) {
this.gdId = gdId;
}
public Integer getGoodsId() {
return goodsId;
}
public void setGoodsId(Integer goodsId) {
this.goodsId = goodsId;
}
public String getGdPicUrl() {
return gdPicUrl;
}
public void setGdPicUrl(String gdPicUrl) {
this.gdPicUrl = gdPicUrl;
}
public Integer getGdOrder() {
return gdOrder;
}
public void setGdOrder(Integer gdOrder) {
this.gdOrder = gdOrder;
}
}
2.2 增加goodsDetail对应的mapper文件(对象关联)
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
2.3 一的一方如何持有多的一方 private List goodsDetails;
package com.imooc.mybatis.entity;
import java.util.List;
public class Goods
{
private Integer goodsId;//商品编号
private String title;//标题
private String subTitle;//子标题
private Float originalCost;//原始价格
private Float currentPrice;//当前价格
private Float discount;//折扣率
private Integer isFreeDelivery;//是否包邮 ,1-包邮 0-不包邮
private Integer categoryId;//分类编号
private ListgoodsDetails;
public ListgetGoodsDetails()
{
return goodsDetails;
}
public void setGoodsDetails(ListgoodsDetails)
{
this.goodsDetails = goodsDetails;
}
public Integer getGoodsId()
{
return goodsId;
}
public void setGoodsId(Integer goodsId)
{
this.goodsId = goodsId;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public String getSubTitle()
{
return subTitle;
}
public void setSubTitle(String subTitle)
{
this.subTitle = subTitle;
}
public Float getOriginalCost()
{
return originalCost;
}
public void setOriginalCost(Float originalCost)
{
this.originalCost = originalCost;
}
public Float getCurrentPrice()
{
return currentPrice;
}
public void setCurrentPrice(Float currentPrice)
{
this.currentPrice = currentPrice;
}
public Float getDiscount()
{
return discount;
}
public void setDiscount(Float discount)
{
this.discount = discount;
}
public Integer getIsFreeDelivery()
{
return isFreeDelivery;
}
public void setIsFreeDelivery(Integer isFreeDelivery)
{
this.isFreeDelivery = isFreeDelivery;
}
public Integer getCategoryId()
{
return categoryId;
}
public void setCategoryId(Integer categoryId)
{
this.categoryId = categoryId;
}
}
2.4 goods.xml (对2.3中添加的list数据进行说明)
column="goods_id"/>
2.5 核心配置文件中进行注册mybatis-config.xml
2.6 测试用例
/**
* 一对多对象关联查询
* @throws Exception
*/
@Test
public void testOneToMany() throws Exception {
SqlSession session = null;
try {
session = MyBatisUtils.openSession();
Listlist = session.selectList("goods.selectOneToMany");
for(Goods goods:list) {
System.out.println(goods.getTitle() + ":" + goods.getGoodsDetails().size());
}
} catch (Exception e) {
throw e;
} finally {
MyBatisUtils.closeSession(session);
}
}
文章来源: https://blog.51cto.com/u_15718681/5871191
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报