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

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

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

背景

項目中涉及存儲數據量過大,會導致數據讀取慢等問題,所以考慮動態(tài)創(chuàng)建表來存儲數據。

這里場景動態(tài)創(chuàng)建表,而且字段是不固定的。表名和字段對應關系存儲在單張表中!

解釋

創(chuàng)建表涉及到數據類型、存儲長度等,這里可以根據個人業(yè)務設置、或者固定

使用Mybatis 動態(tài)sql,傳入對應的數據類型來實現動態(tài)創(chuàng)建表

注意點:

這里簡單說下表名、字段等規(guī)范

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

具體實現

1、拼接每個字段對應數據類型、長度、默認值等

對應數據也可以全varchar,根據業(yè)務需求

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、對應mapper,sql語句

    <!--創(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 = '模板對應數據填報表' ROW_FORMAT = Dynamic;
    </update>

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

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

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

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

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

    Java之打印String對象的地址

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

    Java?Agent探針技術詳解示例

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

    mongo分布式鎖Java實現方法(推薦)

    下面小編就為大家?guī)硪黄猰ongo分布式鎖Java實現方法(推薦)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • springboot配置文件中屬性變量引用方式@@解讀

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

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

    Java基于面向對象實現一個戰(zhàn)士小游戲

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

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

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

    Spring cloud 查詢返回廣告創(chuàng)意實例代碼

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

    Springboot之修改啟動端口的兩種方式(小結)

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

    關于在Springboot中集成unihttp后應用無法啟動的解決辦法

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

最新評論