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

java靈活使用mysql中json類(lèi)型字段存儲(chǔ)數(shù)據(jù)詳解

 更新時(shí)間:2024年09月19日 08:34:56   作者:科大306曉巖  
在數(shù)據(jù)庫(kù)設(shè)計(jì)中,面對(duì)一對(duì)多的關(guān)系,如訂單和商品,可以考慮使用單表存儲(chǔ)而非傳統(tǒng)的分表方式,這篇文章主要介紹了java靈活使用mysql中json類(lèi)型字段存儲(chǔ)數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下

日常數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)時(shí)經(jīng)常會(huì)碰見(jiàn)一對(duì)多的數(shù)據(jù)結(jié)構(gòu)類(lèi)型,例如一筆訂單中包含多個(gè)商品數(shù)據(jù),一般情況下,可能會(huì)設(shè)計(jì)一個(gè)order表,一個(gè)sku表,但如果就想用一個(gè)表去存儲(chǔ)這些訂單和商品數(shù)據(jù),那么應(yīng)該如何去設(shè)計(jì)order表呢?這種情況下就可以使用萬(wàn)能json類(lèi)型字段進(jìn)行存儲(chǔ)訂單與商品一對(duì)多的數(shù)據(jù)結(jié)構(gòu)了.

建表語(yǔ)句:

CREATE TABLE `bd_order` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `orderId` varchar(55) DEFAULT NULL COMMENT '訂單id',
  `nick` varchar(55) DEFAULT NULL COMMENT '用戶(hù)昵稱(chēng)',
  `skuInfo` json DEFAULT NULL COMMENT '商品信息',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='訂單表';

數(shù)據(jù)如下:

存入數(shù)據(jù):

商品實(shí)體類(lèi):

@Data
public class SkuInfo {
    
    private String name;
    private String price;
    private String skuId;

}

訂單實(shí)體類(lèi):

@Data
public class BdOrder {
    private Long id;
    private String orderId;
    private String nick;
    @TableField(value = "skuInfo",typeHandler = FastjsonTypeHandler.class)
    private Object skuInfo;

}

存入數(shù)據(jù)庫(kù): 直接構(gòu)造數(shù)據(jù)結(jié)構(gòu),插入數(shù)據(jù)庫(kù)即可

List<SkuInfo> list = new ArrayList<>();
SkuInfo skuInfo = new SkuInfo();
skuInfo.setName("華為mate70");
skuInfo.setPrice("6000.00");
skuInfo.setSkuId("12345678");
list.add(skuInfo);

BdOrder bdOrder = new BdOrder();
bdOrder.setOrderId("111");
bdOrder.setNick("張三");
bdOrder.setSkuInfo(list);
//執(zhí)行插入sql

從數(shù)據(jù)庫(kù)查詢(xún)數(shù)據(jù):  需要通過(guò)json去解析轉(zhuǎn)為list

//查詢(xún)bd_order表得到如下數(shù)據(jù)
BdOrder bdOrder = 查詢(xún)的數(shù)據(jù)
JSONArray jsonArray = JSONUtil.parseArray(bdOrder.getSkuInfo);
List<SkuInfo> skuInfoList = jsonArray.toList(SkuInfo.class);
//這樣就得到了skuInfoList ,也是訂單對(duì)應(yīng)的多個(gè)商品數(shù)據(jù)

 上述使用的json工具類(lèi)是hutool工具,如果想使用可以在pom引入依賴(lài):

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.7.3</version>
</dependency>

以上就是mysql的json類(lèi)型存儲(chǔ)數(shù)據(jù)的插入和查詢(xún)。

到此這篇關(guān)于java靈活使用mysql中json類(lèi)型字段存儲(chǔ)數(shù)據(jù)的文章就介紹到這了,更多相關(guān)java mysql中json字段存儲(chǔ)數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用idea開(kāi)發(fā)Servlet詳細(xì)圖文教程

    使用idea開(kāi)發(fā)Servlet詳細(xì)圖文教程

    這篇文章主要給大家介紹了關(guān)于使用idea開(kāi)發(fā)Servlet的相關(guān)資料,將idea添加servlet的過(guò)程其實(shí)非常簡(jiǎn)單,只需要按照以下幾個(gè)步驟即可完成,需要的朋友可以參考下
    2023-10-10
  • java實(shí)現(xiàn)ssh連接服務(wù)器的方法步驟

    java實(shí)現(xiàn)ssh連接服務(wù)器的方法步驟

    本文主要介紹了java實(shí)現(xiàn)ssh連接服務(wù)器的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • Java如何實(shí)現(xiàn)Word文檔分欄效果

    Java如何實(shí)現(xiàn)Word文檔分欄效果

    這篇文章主要介紹了Java如何實(shí)現(xiàn)Word文檔分欄效果,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • idea生成WebServices接口的完整流程步驟

    idea生成WebServices接口的完整流程步驟

    因?yàn)楣ぷ餍枰?數(shù)據(jù)傳輸部分需要使用webservice實(shí)現(xiàn),經(jīng)過(guò)兩天的研究,實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的例子,這篇文章主要給大家介紹了關(guān)于idea生成WebServices接口的完整流程步驟,需要的朋友可以參考下
    2024-08-08
  • 使用springboot logback動(dòng)態(tài)獲取application的配置項(xiàng)

    使用springboot logback動(dòng)態(tài)獲取application的配置項(xiàng)

    這篇文章主要介紹了使用springboot logback動(dòng)態(tài)獲取application的配置項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringCloud集成Micrometer Tracing的代碼工程

    SpringCloud集成Micrometer Tracing的代碼工程

    Micrometer Tracing 是一個(gè)用于微服務(wù)架構(gòu)的追蹤庫(kù),它提供了一種簡(jiǎn)單而強(qiáng)大的方式來(lái)收集和報(bào)告分布式系統(tǒng)中的性能和調(diào)用鏈信息,Micrometer Tracing 旨在幫助開(kāi)發(fā)者和運(yùn)維人員理解微服務(wù)之間的交互,本文給大家介紹了如何在 Spring Cloud 集成 Micrometer Tracing
    2024-12-12
  • Java異常中toString()和getMessage()區(qū)別

    Java異常中toString()和getMessage()區(qū)別

    在java異常體系中,要打印異常信息,可以通過(guò):e.getMessage() 、 e.toString() e.printStackTrace() 等方法打印,本文主要介紹了Java異常中toString()和getMessage()區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Spring?Boot小型項(xiàng)目如何使用異步任務(wù)管理器實(shí)現(xiàn)不同業(yè)務(wù)間的解耦

    Spring?Boot小型項(xiàng)目如何使用異步任務(wù)管理器實(shí)現(xiàn)不同業(yè)務(wù)間的解耦

    這篇文章主要介紹了Spring?Boot小型項(xiàng)目如何使用異步任務(wù)管理器實(shí)現(xiàn)不同業(yè)務(wù)間的解耦,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • Java Mybatis框架增刪查改與核心配置詳解流程與用法

    Java Mybatis框架增刪查改與核心配置詳解流程與用法

    MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。MyBatis 可以通過(guò)簡(jiǎn)單的 XML 或注解來(lái)配置和映射原始類(lèi)型、接口和 Java POJO為數(shù)據(jù)庫(kù)中的記錄
    2021-10-10
  • Java?Web實(shí)現(xiàn)簡(jiǎn)易圖書(shū)管理系統(tǒng)

    Java?Web實(shí)現(xiàn)簡(jiǎn)易圖書(shū)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java?Web實(shí)現(xiàn)簡(jiǎn)易圖書(shū)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09

最新評(píng)論