日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mybatis——返回类型为 集合嵌套集合 应该如何处理

發布時間:2023/12/4 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mybatis——返回类型为 集合嵌套集合 应该如何处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

? ? 最近在練習時 遇到了類似于 企鵝里的好友分組功能,使用的持久層框架是mybatis 第一次處理這種關系 記錄一下 備忘。。

首先是表結構:

? ?? ? <user_group > 好友分組 、 <t_group> 用戶與好友分組的關聯表 、 <t_user> 用戶表

實現需求的返回格式:

????????

之后就到了重點,處理這種數據格式 重點在Mybatis的resultMap 和 對應的實體類:

????? ? 分組實體類 UserGroupsView

public class UserGroupsView { /*** 好友分組ID*/@Idprivate Integer id;/*** 好友分組名*/@Column(name = "groupname" )private String groupName;/*** 分組下好友集合*/private List<UserGroupView> userGroupViewList; }

?????? ? 分組下好友實體類UserGroupView

public class UserGroupView {/*** 好友分組ID*/@Id@Column(name="user_group_id")private Integer userGroupId;/*** 好友ID*/@Column(name = "friend_id")private Integer friendId;/*** 用戶昵稱*/private String username;/*** 在線狀態 online:在線、offline:離線、hide:隱身*/private String status;/*** 用戶簽名*/private String sign;/*** 頭像URL*/private String avatar;/*** 是否刪除 0,(否)/1,(是)*/@Column(name = "is_delete")private Integer isDelete; }

在mybatis中的處理:

? ? 這里的重點應該是 id為UserGroupsMap 中的返回集合類型上,這個resultMap返回的集合 對應著UserGroupView實體類 所以返回到 分組實體類中 是一個集合。

<?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.mapper.UserGroupMapper"><resultMap id="BaseResultMap" type="com.model.UserGroup"><id column="id" jdbcType="INTEGER" property="id"/><result column="group_id" jdbcType="INTEGER" property="groupId"/><result column="friend_id" jdbcType="INTEGER" property="friendId"/></resultMap><resultMap id="UserGroupMap" type="com.model.view.UserGroupView"><id column="user_group_id" jdbcType="INTEGER" property="userGroupId"/><result column="friend_id" jdbcType="INTEGER" property="friendId"/><result column="username" jdbcType="VARCHAR" property="username"/><result column="status" jdbcType="VARCHAR" property="status"/><result column="sign" jdbcType="VARCHAR" property="sign"/><result column="avatar" jdbcType="VARCHAR" property="avatar"/><result column="is_delete" jdbcType="INTEGER" property="isDelete"/></resultMap><resultMap id="UserGroupsMap" type="com.model.view.UserGroupsView"><id column="id" jdbcType="INTEGER" property="id"/><result column="groupname" jdbcType="INTEGER" property="groupName"/><collection property="userGroupViewList" resultMap="UserGroupMap"/></resultMap><select id="selectGroups" resultMap="UserGroupsMap">SELECTt_group.id,t_group.groupname,user_group.id AS user_group_id,t_user.id AS friend_id,t_user.username,t_user.`status`,t_user.sign,t_user.avatarFROMuser_groupINNER JOIN t_user ON user_group.friend_id = t_user.idINNER JOIN t_group ON t_group.id = user_group.group_idWHERE<!-- 這里暫時把userId寫死-->t_group.user_id = 1</select></mapper>

????? ? 對應mapper的interface

public interface UserGroupMapper extends Mapper<UserGroup> {// 獲取用戶好友分類 及其分類下的好友List<UserGroupsView> selectGroups(); }

????? ? 執行sql語句的返回結果大概是這樣:

轉載于:https://my.oschina.net/danjuan/blog/906437

總結

以上是生活随笔為你收集整理的Mybatis——返回类型为 集合嵌套集合 应该如何处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。