最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java靈活使用mysql中json類型字段存儲(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類型字段存儲(chǔ)數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下

日常數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)時(shí)經(jīng)常會(huì)碰見(jiàn)一對(duì)多的數(shù)據(jù)結(jié)構(gòu)類型,例如一筆訂單中包含多個(gè)商品數(shù)據(jù),一般情況下,可能會(huì)設(shè)計(jì)一個(gè)order表,一個(gè)sku表,但如果就想用一個(gè)表去存儲(chǔ)這些訂單和商品數(shù)據(jù),那么應(yīng)該如何去設(shè)計(jì)order表呢?這種情況下就可以使用萬(wàn)能json類型字段進(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 '用戶昵稱',
  `skuInfo` json DEFAULT NULL COMMENT '商品信息',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='訂單表';

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

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

商品實(shí)體類:

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

}

訂單實(shí)體類:

@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ù)查詢數(shù)據(jù):  需要通過(guò)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 ,也是訂單對(duì)應(yīng)的多個(gè)商品數(shù)據(jù)

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

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

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

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

相關(guān)文章

  • JAVA中出現(xiàn)異常、拋出異常后續(xù)代碼是否執(zhí)行情況詳析

    JAVA中出現(xiàn)異常、拋出異常后續(xù)代碼是否執(zhí)行情況詳析

    當(dāng)產(chǎn)生異常后,并在異常處理器中進(jìn)行執(zhí)行之后,程序會(huì)是如何的一種狀態(tài),是終止還是繼續(xù)執(zhí)行處理之后的代碼呢,下面這篇文章主要給大家介紹了關(guān)于JAVA中出現(xiàn)異常、拋出異常后續(xù)代碼是否執(zhí)行情況的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • MyBatis 擴(kuò)展BaseTypeHandler 轉(zhuǎn)換泛型 JSON 列表的解決方法

    MyBatis 擴(kuò)展BaseTypeHandler 轉(zhuǎn)換泛型 JSON 列表的解

    本文詳細(xì)介紹了MyBatis中處理JSON轉(zhuǎn)換的bug及其解決方法,文章還介紹了如何處理抽象類和自定義對(duì)象的JSON轉(zhuǎn)換,并提供了一個(gè)基類AbstractListTypeHandler作為示例,最后,文章附上了MyBatis內(nèi)建的javaTypeAlias鏈接,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • 實(shí)例詳解Java調(diào)用第三方接口方法

    實(shí)例詳解Java調(diào)用第三方接口方法

    很多項(xiàng)目都會(huì)封裝規(guī)定好本身項(xiàng)目的接口規(guī)范,所以大多數(shù)需要去調(diào)用對(duì)方提供的接口或第三方接口(短信、天氣等),下面這篇文章主要給大家介紹了關(guān)于Java調(diào)用第三方接口方法的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Java struts2 package元素配置及實(shí)例解析

    Java struts2 package元素配置及實(shí)例解析

    這篇文章主要介紹了Java struts2 package元素配置及實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • SpringBoot2.0 整合 Dubbo框架實(shí)現(xiàn)RPC服務(wù)遠(yuǎn)程調(diào)用方法

    SpringBoot2.0 整合 Dubbo框架實(shí)現(xiàn)RPC服務(wù)遠(yuǎn)程調(diào)用方法

    這篇文章主要介紹了SpringBoot2.0 整合 Dubbo框架 實(shí)現(xiàn)RPC服務(wù)遠(yuǎn)程調(diào)用 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • java開(kāi)發(fā)分布式服務(wù)框架Dubbo原理機(jī)制詳解

    java開(kāi)發(fā)分布式服務(wù)框架Dubbo原理機(jī)制詳解

    這篇文章主要為大家介紹了java開(kāi)發(fā)分布式服務(wù)框架Dubbo的原理機(jī)制詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • spring boot國(guó)際化之MessageSource的使用方法

    spring boot國(guó)際化之MessageSource的使用方法

    這篇文章主要給大家介紹了spring boot國(guó)際化之MessageSource使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • java 格式化輸出數(shù)字的方法

    java 格式化輸出數(shù)字的方法

    在實(shí)際工作中,常常需要設(shè)定數(shù)字的輸出格式,如以百分比的形式輸出,或者設(shè)定小數(shù)位數(shù)等,現(xiàn)稍微總結(jié)如下
    2014-01-01
  • JavaCV實(shí)現(xiàn)多個(gè)MP4視頻的合并

    JavaCV實(shí)現(xiàn)多個(gè)MP4視頻的合并

    這篇文章主要為大家詳細(xì)介紹了如何使用javacv和ffmpeg框架實(shí)現(xiàn)簡(jiǎn)單快速的合并mp4文件的視頻和音頻,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-10-10
  • 關(guān)于Springboot+gateway整合依賴并處理依賴沖突問(wèn)題

    關(guān)于Springboot+gateway整合依賴并處理依賴沖突問(wèn)題

    這篇文章主要介紹了Springboot+gateway整合依賴并處理依賴沖突問(wèn)題,給大家提到了spring boot版本和spring cloud版本,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01

最新評(píng)論

辛集市| 民乐县| 九龙城区| 长汀县| 鄂尔多斯市| 平潭县| 衡山县| 宁波市| 抚松县| 海淀区| 井陉县| 广东省| 铁力市| 玛多县| 边坝县| 资兴市| 襄汾县| 邻水| 永济市| 独山县| 长宁区| 竹北市| 恩施市| 灵武市| 常熟市| 丹巴县| 锡林浩特市| 双城市| 长沙县| 堆龙德庆县| 石泉县| 辽阳市| 嘉兴市| 宜都市| 广安市| 芒康县| 吉木乃县| 滦平县| 金华市| 洪湖市| 梁山县|