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

Mybatis如何動(dòng)態(tài)創(chuàng)建表

 更新時(shí)間:2024年04月03日 09:51:07   作者:白面小生  
這篇文章主要介紹了Mybatis如何動(dòng)態(tài)創(chuàng)建表問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

背景

項(xiàng)目中涉及存儲(chǔ)數(shù)據(jù)量過(guò)大,會(huì)導(dǎo)致數(shù)據(jù)讀取慢等問(wèn)題,所以考慮動(dòng)態(tài)創(chuàng)建表來(lái)存儲(chǔ)數(shù)據(jù)。

這里場(chǎng)景動(dòng)態(tài)創(chuàng)建表,而且字段是不固定的。表名和字段對(duì)應(yīng)關(guān)系存儲(chǔ)在單張表中!

解釋

創(chuàng)建表涉及到數(shù)據(jù)類(lèi)型、存儲(chǔ)長(zhǎng)度等,這里可以根據(jù)個(gè)人業(yè)務(wù)設(shè)置、或者固定

使用Mybatis 動(dòng)態(tài)sql,傳入對(duì)應(yīng)的數(shù)據(jù)類(lèi)型來(lái)實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建表

注意點(diǎn):

這里簡(jiǎn)單說(shuō)下表名、字段等規(guī)范

  • 1.因?yàn)槲疫@里表名也是動(dòng)態(tài)生成,不建議純數(shù)字,否者插入時(shí),表名需添加~~(Table鍵上面),可以拼接字符前綴
  • 2.建表時(shí)建議采用innodb引擎,一般情況。
  • 3.數(shù)據(jù)類(lèi)型的話(huà),根據(jù)業(yè)務(wù)場(chǎng)景來(lái),我這里就是int、varchar、datetime三種類(lèi)型

具體實(shí)現(xiàn)

1、拼接每個(gè)字段對(duì)應(yīng)數(shù)據(jù)類(lèi)型、長(zhǎng)度、默認(rèn)值等

對(duì)應(yīng)數(shù)據(jù)也可以全varchar,根據(jù)業(yè)務(wù)需求

for (TemplateField field : fields) {
                TableParam tableParam2 = new TableParam();
                tableParam2.setField(field.getDataIndex())
                        .setContent(field.getTitle());
                if ("1".equals(field.getDataType())) {
                    tableParam2.setType(" varchar(255) ")
                            .setAttribute(" CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL ");
                }
                if ("2".equals(field.getDataType())) {
                    tableParam2.setType(" int(10) ")
                            .setAttribute(" NULL DEFAULT NULL ");
                }
                if ("3".equals(field.getDataType())) {
                    tableParam2.setType(" datetime(0) ")
                            .setAttribute(" NULL DEFAULT NULL ");
                }
                tableParamList.add(tableParam2);
            }

2、對(duì)應(yīng)mapper,sql語(yǔ)句

    <!--創(chuàng)建表-->
    <update id="createTable" parameterType="java.util.List" statementType="STATEMENT">
        CREATE TABLE `${tableName}`
        (
        <foreach collection="tableParams" separator="," item="item">
            `${item.field}` ${item.type} ${item.attribute} COMMENT '${item.content}'
        </foreach>
        ${key}
        )
        ENGINE = InnoDB AUTO_INCREMENT = 1  CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '模板對(duì)應(yīng)數(shù)據(jù)填報(bào)表' ROW_FORMAT = Dynamic;
    </update>

到此,Mybatis動(dòng)態(tài)創(chuàng)建表就可以了!

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中stream處理中map與flatMap的比較和使用案例

    Java中stream處理中map與flatMap的比較和使用案例

    這篇文章主要介紹了Java中stream處理中map與flatMap的比較和使用案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Java之打印String對(duì)象的地址

    Java之打印String對(duì)象的地址

    這篇文章主要介紹了Java之打印String對(duì)象的地址,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java?Agent探針技術(shù)詳解示例

    Java?Agent探針技術(shù)詳解示例

    這篇文章主要介紹了Java?Agent?探針技術(shù)詳情,Java?中的?Agent?技術(shù)可以讓我們無(wú)侵入性的去進(jìn)行代理,最常用于程序調(diào)試、熱部署、性能診斷分析等場(chǎng)景,下文更多相關(guān)資料,感興趣的小伙伴可以參考一下
    2022-06-06
  • mongo分布式鎖Java實(shí)現(xiàn)方法(推薦)

    mongo分布式鎖Java實(shí)現(xiàn)方法(推薦)

    下面小編就為大家?guī)?lái)一篇mongo分布式鎖Java實(shí)現(xiàn)方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • springboot配置文件中屬性變量引用方式@@解讀

    springboot配置文件中屬性變量引用方式@@解讀

    這篇文章主要介紹了springboot配置文件中屬性變量引用方式@@解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java基于面向?qū)ο髮?shí)現(xiàn)一個(gè)戰(zhàn)士小游戲

    Java基于面向?qū)ο髮?shí)現(xiàn)一個(gè)戰(zhàn)士小游戲

    這篇文章主要為大家詳細(xì)介紹了Java如何基于面向?qū)ο髮?shí)現(xiàn)一個(gè)戰(zhàn)士小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下
    2022-07-07
  • Springboot從配置文件properties讀取字符串亂碼的解決

    Springboot從配置文件properties讀取字符串亂碼的解決

    這篇文章主要介紹了Springboot從配置文件properties讀取字符串亂碼的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Spring cloud 查詢(xún)返回廣告創(chuàng)意實(shí)例代碼

    Spring cloud 查詢(xún)返回廣告創(chuàng)意實(shí)例代碼

    在本篇文章里小編給大家整理的是關(guān)于Spring cloud 查詢(xún)返回廣告創(chuàng)意實(shí)例代碼,需要的朋友們可以跟著學(xué)習(xí)下。
    2019-08-08
  • Springboot之修改啟動(dòng)端口的兩種方式(小結(jié))

    Springboot之修改啟動(dòng)端口的兩種方式(小結(jié))

    這篇文章主要介紹了Springboot之修改啟動(dòng)端口的兩種方式(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 關(guān)于在Springboot中集成unihttp后應(yīng)用無(wú)法啟動(dòng)的解決辦法

    關(guān)于在Springboot中集成unihttp后應(yīng)用無(wú)法啟動(dòng)的解決辦法

    本文主要介紹了在SpringBoot項(xiàng)目中集成UniHttp框架時(shí)遇到的無(wú)法啟動(dòng)問(wèn)題,并提供了解決方法,作者通過(guò)詳細(xì)記錄和分析問(wèn)題,希望為其他開(kāi)發(fā)者提供有價(jià)值的參考和借鑒,感興趣的朋友跟隨小編一起看看吧
    2025-03-03

最新評(píng)論