Mybatis, 实现一对多

Posted 梓★鸿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis, 实现一对多相关的知识,希望对你有一定的参考价值。

我这里是拿商品做为例子

不多说直接上代码

 

Mapper.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="com.nf147.mall.dao.CommodityMapper">
    <resultMap id="BaseResultMap" type="com.nf147.mall.entity.Commodity">
        <id column="product_id" jdbcType="INTEGER" property="productId"/>
        <result column="category_id" jdbcType="INTEGER" property="categoryId"/>
        <result column="product_code" jdbcType="VARCHAR" property="productCode"/>
        <result column="product_name" jdbcType="VARCHAR" property="productName"/>
        <result column="product_content" jdbcType="LONGVARCHAR" property="productContent"/>

     <!--这里还需要标明关系  property属性对应是实体类的字段名-->
        <association property="standard" resultMap="StandardResultMap"></association>
        <association property="dommodityattribute" resultMap="DommodityattributeResultMap"></association>
    </resultMap>
         
    <!--这个是要查询的表1  总之你直接去要查询的表复制就好 -->
<resultMap id="DommodityattributeResultMap" type="com.nf147.mall.entity.Dommodityattribute">
        <id column="id" jdbcType="INTEGER" property="id"/>
        <result column="product_id" jdbcType="INTEGER" property="productId"/>
        <result column="product_simg" jdbcType="VARCHAR" property="productSimg"/>
</resultMap>
        <!--这个是要查询的表2-->
<resultMap id="StandardResultMap" type="com.nf147.mall.entity.Standard">
        <id column="specs_id" jdbcType="INTEGER" property="specsId"/>
        <result column="product_id" jdbcType="INTEGER" property="productId"/>
        <result column="product_specs" jdbcType="VARCHAR" property="productSpecs"/>
        <result column="product_price" jdbcType="DECIMAL" property="productPrice"/>
</resultMap>

 

实体类:

public class Commodity {
    private Integer productId;

    private Integer categoryId;

    private String productCode;

    private String productName;

    private String productContent;

    private Standard standard;      //第一个表的实体类

    private Dommodityattribute dommodityattribute;  //第二个表的实体类  然后再提供 get 和 set 的方法

    public Standard getStandard() {
        return standard;
    }

    public void setStandard(Standard standard) {
        this.standard = standard;
    }

    public Dommodityattribute getDommodityattribute() {
        return dommodityattribute;
    }

    public void setDommodityattribute(Dommodityattribute dommodityattribute) {
        this.dommodityattribute = dommodityattribute;
    }

    public Integer getProductId() {
        return productId;
    }

    public void setProductId(Integer productId) {
        this.productId = productId;
    }

    public Integer getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Integer categoryId) {
        this.categoryId = categoryId;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode == null ? null : productCode.trim();
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName == null ? null : productName.trim();
    }

    public String getProductContent() {
        return productContent;
    }

    public void setProductContent(String productContent) {
        this.productContent = productContent == null ? null : productContent.trim();
    }
}

希望能帮助大家,谢谢。

 

以上是关于Mybatis, 实现一对多的主要内容,如果未能解决你的问题,请参考以下文章

通过mybatis实现单表内一对多的数据展示

mybatis递归,一对多代码示例

mybatis如何实现一对多关联关系

mybatis映射 一对一,一对多,多对多高级映射

mybatis关联查询,一对一,一对多

MyBatis多表联查