欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis使用Collection屬性的示例代碼

 更新時間:2023年07月24日 09:54:10   作者:保加利亞的風(fēng)  
本文主要介紹了Mybatis使用Collection屬性的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

這篇文章實(shí)現(xiàn)一下不使用left join等連接關(guān)鍵字來實(shí)現(xiàn)Mybatis的聯(lián)表查詢功能。包括json類型數(shù)據(jù)映射到Java實(shí)體類中。

庫表

父表db1_json

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-zIuG3a9a-1689752532289)(C:\Users\Admin\AppData\Roaming\marktext\images\2023-07-19-15-19-09-image.png)]

子表db1_json_attach,子表parent_id對應(yīng)副本的id。

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-LMlft32m-1689752532290)(C:\Users\Admin\AppData\Roaming\marktext\images\2023-07-19-15-19-47-image.png)]

實(shí)體類

新建Db1JsonDTO數(shù)據(jù)傳遞對象實(shí)體。

@Data
public class Db1JsonDTO {
    //父表id
    private Long id;
    //父表信息
    private JSONObject info;
    //子表數(shù)據(jù)
    private List<Db1JsonAttach> attaches;
}

查看子表實(shí)體屬性

@TableName(value ="db1_json_attach")
@Data
public class Db1JsonAttach implements Serializable {
    private Long parentId;
    @TableId(type = IdType.ID_WORKER)
    private Long id;
    @TableField(typeHandler = JacksonTypeHandler.class)
    private JSONObject info;
    private static final long serialVersionUID = 1L;
}

Mapper.xml

父xml處理,sql沒什么好看的,看一下<resultMap>中各個屬性吧。

<resultMap id="Db1JsonDTOResultMap" type="com.it.dto.Db1JsonDTO">
    <result column="info" property="info" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
    <collection property="attaches" column="{parentId = id}"
                select="com.it.mapper.Db1JsonAttachMapper.getAttachList"/>
</resultMap>
<select id="selectDb1JsonList" resultMap="Db1JsonDTOResultMap">
    select id,info from db1_json
</select>
  • id:自定義id,在SQL查詢后使用resultMap屬性并指定id返回。
  • type:返回字段對應(yīng)的實(shí)體類,也可以是DTO,實(shí)體需要有Getter、Setter方法。
  • <result column:數(shù)據(jù)庫中的字段名稱。
  • <result property:與數(shù)據(jù)庫字段對應(yīng)的屬性名。
  • <result typeHandler:對特殊類型進(jìn)行處理,例如當(dāng)前為json類型,指定將返回的結(jié)果進(jìn)行轉(zhuǎn)化后映射到實(shí)體屬性中。
  • <collection property:父實(shí)體中的list集合數(shù)據(jù),即為子實(shí)體類的集合。
  • <collection column:id字段賦值,將父id字段賦值給子id。
  • <collection select :指定子xmlSQL查詢的方法id。

子xml處理

<resultMap id="BaseResultMap" type="com.it.entity.Db1JsonAttach">
        <id property="parentId" column="parent_id" jdbcType="BIGINT"/>
        <result property="id" column="id" jdbcType="BIGINT"/>
    <result property="info" column="info"  typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
</resultMap>
<select id="getAttachList" resultMap="BaseResultMap">
    select * from db1_json_attach where parent_id = #{parentId}
</select>

注:Mapper中不需要定義查詢方法,只在XML中定義即可。

測試

看一下測試結(jié)果

[
  {
    "id": 1681557955655049218,
    "info": {
      "address": "洛杉磯",
      "name": "科比",
      "hobby": "直升機(jī)"
    },
    "attaches": [
      {
        "parentId": 1681557955655049218,
        "id": 1681557956250640385,
        "info": {
          "address": "洛杉磯",
          "name": "科比",
          "hobby": "直升機(jī)"
        }
      }
    ]
  },
  {
    "id": 1681558109766361089,
    "info": {
      "address": "美國",
      "name": "蔡徐坤",
      "hobby": "唱跳rap籃球"
    },
    "attaches": [
      {
        "parentId": 1681558109766361089,
        "id": 1681558109766361090,
        "info": {
          "address": "美國",
          "name": "蔡徐坤",
          "hobby": "唱跳rap籃球"
        }
      }
    ]
  },
  {
    "id": 1681558181665120257,
    "info": {
      "address": "理塘",
      "name": "丁真",
      "hobby": "測碼"
    },
    "attaches": [
      {
        "parentId": 1681558181665120257,
        "id": 1681558181732229122,
        "info": {
          "address": "理塘",
          "name": "丁真",
          "hobby": "測碼"
        }
      }
    ]
  }
]

總結(jié)

這個方式的聯(lián)表查詢用的不算太多,但是在一些特殊情況可以使用這種方式來完成查詢子表的某一下數(shù)據(jù)集合。

到此這篇關(guān)于Mybatis使用Collection屬性的示例代碼的文章就介紹到這了,更多相關(guān)Mybatis Collection屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入理解SpringBoot的配置環(huán)境屬性

    深入理解SpringBoot的配置環(huán)境屬性

    SpringBoot的配置環(huán)境屬性是一種強(qiáng)大的工具,可以幫助我們配置和管理我們的應(yīng)用程序,這篇文章主要介紹了SpringBoot的配置環(huán)境屬性,需要的朋友可以參考下
    2023-07-07
  • Java Spring Boot 集成Zookeeper

    Java Spring Boot 集成Zookeeper

    這篇文章主要介紹了Java Spring Boot 集成Zookeeper,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • java回溯算法解數(shù)獨(dú)問題

    java回溯算法解數(shù)獨(dú)問題

    這篇文章主要為大家詳細(xì)介紹了java回溯算法解數(shù)獨(dú)問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • JAVA實(shí)現(xiàn)異步調(diào)用實(shí)例代碼

    JAVA實(shí)現(xiàn)異步調(diào)用實(shí)例代碼

    在java平臺,實(shí)現(xiàn)異步調(diào)用的角色主要三種角色:調(diào)用者、取貨憑證、真實(shí)數(shù)據(jù)。本篇文章給大家介紹java實(shí)現(xiàn)異步調(diào)用實(shí)例代碼,需要的朋友可以參考下
    2015-09-09
  • 詳解IDEA啟動多個微服務(wù)的配置方法

    詳解IDEA啟動多個微服務(wù)的配置方法

    這篇文章主要介紹了詳解IDEA啟動多個微服務(wù)的配置方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • java中InputStream轉(zhuǎn)為MultipartFile的解決方案

    java中InputStream轉(zhuǎn)為MultipartFile的解決方案

    這篇文章主要介紹了java中InputStream轉(zhuǎn)為MultipartFile的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 解決Feign獲取異常信息的處理方案

    解決Feign獲取異常信息的處理方案

    這篇文章主要介紹了解決Feign獲取異常信息的處理方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java實(shí)現(xiàn)斗地主游戲

    java實(shí)現(xiàn)斗地主游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)斗地主游戲,洗牌、發(fā)牌、看牌,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • java 字符串詞頻統(tǒng)計(jì)實(shí)例代碼

    java 字符串詞頻統(tǒng)計(jì)實(shí)例代碼

    java 字符串詞頻統(tǒng)計(jì)實(shí)例代碼,需要的朋友可以參考一下
    2013-03-03
  • 入門java的第一步HelloWorld

    入門java的第一步HelloWorld

    這篇文章主要介紹了入門java的第一步-Hello,World,文中通過示例代碼介紹的非常詳細(xì),對大家的java初步學(xué)習(xí)具有一定的學(xué)習(xí)價值,需要的朋友可以參考下
    2021-04-04

最新評論