亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

建表語句:

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

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

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

商品實體類:

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

}

訂單實體類:

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

}

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

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ù)庫查詢數(shù)據(jù):  需要通過json去解析轉(zhuǎn)為list

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

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

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

以上就是mysql的json類型存儲數(shù)據(jù)的插入和查詢。

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

    SpringCloud集成Micrometer Tracing的代碼工程

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

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

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

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

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

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

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

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

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

最新評論