返回

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

发布时间:2023-11-09 18:18:59 328

1.案例分析

1.班级(1)---> 学生 (n)  学生必须持有班级的外键
2.1对1 通过主键关联
3.多对多必须单独抽象出一张中间表

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

 

 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 List goodsDetails;

public List getGoodsDetails()
{
return goodsDetails;
}

public void setGoodsDetails(List goodsDetails)
{
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();
List list = 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);
}
}

 



特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
021.Mybatis的二级缓存---(2) 2023-11-09 15:05:54