Mybatis多对多处理

1. 数据库中建立 3张表,2个对象,一张关联表

2. 关联表对应java 对象

 private int id;

    private DataTag dataTag;

    private StorageData storageData;

3. DataTag

  private int tagId;

    private String tagName;

    private int parent;

    private String userId;

    private List<StorageData> storageDataList;

4. StorageData

    private String dataId;

    private String description;

    private byte[] content;

    private String fileName;

    private String ext;

根据需求决定对象是否加另一对象的List,通过tag要找dataList,所以tag中含 storageDataList

5.xml

<resultMap type="DataTag" id="dataTagMap">
        <id property="tagId" column="tagId" />
        <result property="tagName" column="tagName" />
        <result property="parent" column="parent" />
        <result property="userId" column="userId" />
  </resultMap>

  <resultMap type="DataTag" id="dataTagStorageDataMap" extends="dataTagMap">
      <collection property="storageDataList" ofType="StorageData">
          <id property="dataId" column="dataId" />
          <result property="description" column="description" />
          <result property="ext" column="ext" />
          <result property="fileName" column="fileName" />
          <result property="content" column="content" />
      </collection>
  </resultMap>
 <select id="findTagByUserId" parameterType="string" resultMap="dataTagStorageDataMap">
    SELECT
        t.tagId,
        t.tagName,
        t.parent,
        t.userId,
        d.dataId,
        d.description,
        d.ext,
        d.fileName,
        d.content
    FROM t_tag t
    LEFT JOIN t_tag_storage_data td
    ON t.tagId = td.tagId
    LEFT JOIN t_storage_data d
    ON td.dataId = d.dataId
    WHERE userId = #{userId}
  </select>

6. 插入操作,维护关系表

在stoargeData 中加

 public void saveRelativity(TagStorageDataLink tagDataLink);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值