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

java如何實現(xiàn)自動生成數(shù)據(jù)庫設(shè)計文檔

 更新時間:2021年11月22日 11:16:45   作者:java李楊勇  
以前我們還需要手寫數(shù)據(jù)庫設(shè)計文檔、現(xiàn)在可以通過引入screw核心包來實現(xiàn)Java?數(shù)據(jù)庫文檔一鍵生成。本文將具體介紹一下如何通過java自動生成數(shù)據(jù)庫設(shè)計文檔,需要的朋友可以參考下

前言

以前我們還需要手寫數(shù)據(jù)庫設(shè)計文檔、現(xiàn)在可以通過引入screw核心包來實現(xiàn)Java 數(shù)據(jù)庫文檔一鍵生成。話不多說、直接上代碼演示。

支持的數(shù)據(jù)庫列表:

  • MySQL
  • MariaDB
  • TIDB
  • Oracle
  • SqlServer
  • PostgreSQL
  • 這些主流的數(shù)據(jù)庫都支持的。

實現(xiàn)步驟

引入 pom.xml核心配置screw包

       <dependency>
			<groupId>cn.smallbun.screw</groupId>
			<artifactId>screw-core</artifactId>
			<version>1.0.5</version>
		</dependency>

main方法類全部代碼

package com.railway.modules.sys.controller;
 
/**
 * Created by LiYangYong on 2021/11/11
 */
 
import cn.smallbun.screw.core.Configuration;
import cn.smallbun.screw.core.engine.EngineConfig;
import cn.smallbun.screw.core.engine.EngineFileType;
import cn.smallbun.screw.core.engine.EngineTemplateType;
import cn.smallbun.screw.core.execute.DocumentationExecute;
import cn.smallbun.screw.core.process.ProcessConfig;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
 
import javax.sql.DataSource;
import java.util.Arrays;
import java.util.Collections;
 
/**
 * Created by LiYangYong on 2021/11/11.
 */
public class TestScrewMain {
    private static final String DB_URL = "jdbc:mysql://localhost:3307";
    private static final String DB_NAME = "renren_fast?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
    private static final String DB_USERNAME = "root";
    private static final String DB_PASSWORD = "crit@2019";
 
    private static final String FILE_OUTPUT_DIR = "C:\\Users\\Administrator\\Desktop\\java\\";
    // 可以設(shè)置 Word 或者 Markdown 格式
    private static final EngineFileType FILE_OUTPUT_TYPE = EngineFileType.WORD;
    private static final String DOC_FILE_NAME = "數(shù)據(jù)庫表設(shè)計文檔";
    private static final String DOC_VERSION = "V1.0.0";
    private static final String DOC_DESCRIPTION = "數(shù)據(jù)庫表設(shè)計描述";
 
    public static void main(String[] args) {
        // 創(chuàng)建 screw 的配置
        Configuration config = Configuration.builder()
                // 版本
                .version(DOC_VERSION)
                // 描述
                .description(DOC_DESCRIPTION)
                // 數(shù)據(jù)源
                .dataSource(buildDataSource())
                // 引擎配置
                .engineConfig(buildEngineConfig())
                // 處理配置
                .produceConfig(buildProcessConfig())
                .build();
 
        // 執(zhí)行 screw,生成數(shù)據(jù)庫文檔
        new DocumentationExecute(config).execute();
    }
 
    /**
     * 創(chuàng)建數(shù)據(jù)源
     */
    private static DataSource buildDataSource() {
        // 創(chuàng)建 HikariConfig 配置類
        HikariConfig hikariConfig = new HikariConfig();
        hikariConfig.setDriverClassName("com.mysql.jdbc.Driver");
        hikariConfig.setJdbcUrl(DB_URL + "/" + DB_NAME);
        hikariConfig.setUsername(DB_USERNAME);
        hikariConfig.setPassword(DB_PASSWORD);
        // 設(shè)置可以獲取 tables remarks 信息
        hikariConfig.addDataSourceProperty("useInformationSchema", "true");
        // 創(chuàng)建數(shù)據(jù)源
        return new HikariDataSource(hikariConfig);
    }
 
    /**
     * 創(chuàng)建 screw 的引擎配置
     */
    private static EngineConfig buildEngineConfig() {
        return EngineConfig.builder()
                // 生成文件路徑
                .fileOutputDir(FILE_OUTPUT_DIR)
                // 打開目錄
                .openOutputDir(false)
                // 文件類型
                .fileType(FILE_OUTPUT_TYPE)
                // 文件類型
                .produceType(EngineTemplateType.freemarker)
                // 自定義文件名稱
                .fileName(DOC_FILE_NAME)
                .build();
    }
 
    /**
     * 創(chuàng)建 screw 的處理配置,一般可忽略
     * 指定生成邏輯、當存在指定表、指定表前綴、指定表后綴時,將生成指定表,其余表不生成、并跳過忽略表配置
     */
    private static ProcessConfig buildProcessConfig() {
        return ProcessConfig.builder()
                // 根據(jù)名稱指定表生成
                .designatedTableName(Collections.<String>emptyList())
                // 根據(jù)表前綴生成
                .designatedTablePrefix(Collections.<String>emptyList())
                // 根據(jù)表后綴生成
                .designatedTableSuffix(Collections.<String>emptyList())
                // 忽略表名
                .ignoreTableName(Arrays.asList("test", "mytable","role","t_role","t_user"))
                // 忽略表前綴
                //.ignoreTablePrefix(Collections.singletonList("t_"))
                // 忽略表后綴
                //.ignoreTableSuffix(Collections.singletonList("_test"))
                .build();
    }
 
 
}

生成的數(shù)據(jù)庫設(shè)計文檔演示

?

表qrtz_blob_triggers

表qrtz_calendars

表qrtz_cron_triggers

?這樣就解放雙手拉 。

到此這篇關(guān)于java如何實現(xiàn)自動生成數(shù)據(jù)庫設(shè)計文檔的文章就介紹到這了,更多相關(guān)java自動生成數(shù)據(jù)庫文檔內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺析JAVA_HOME,CLASSPATH和PATH的作用

    淺析JAVA_HOME,CLASSPATH和PATH的作用

    以下是對JAVA_HOME,CLASSPATH和PATH的作用進行了詳細的分析介紹,需要的朋友可以過來參考下
    2013-07-07
  • Java解析XML文件開源庫DOM4J

    Java解析XML文件開源庫DOM4J

    dom4j是一個Java的XML API,是jdom的升級品,用來讀寫XML文件的。dom4j是一個十分優(yōu)秀的JavaXML API,具有性能優(yōu)異、功能強大和極其易使用的特點,它的性能超過sun公司官方的dom技術(shù),同時它也是一個開放源代碼的軟件
    2023-01-01
  • 詳解path和classpath的區(qū)別

    詳解path和classpath的區(qū)別

    這篇文章主要介紹了詳解path和classpath的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • SpringBoot如何優(yōu)雅的輸出異常信息

    SpringBoot如何優(yōu)雅的輸出異常信息

    在Java中,異常(Exception)是Java程序在運行過程中出現(xiàn)的一種特殊情況,會中斷正常的程序流程,異常可以是運行時錯誤,也可以是編程錯誤,本文將給大家詳細的介紹一下SpringBoot如何優(yōu)雅的輸出異常信息,需要的朋友可以參考下
    2023-09-09
  • Java實現(xiàn)微信公眾號獲取臨時二維碼功能示例

    Java實現(xiàn)微信公眾號獲取臨時二維碼功能示例

    這篇文章主要介紹了Java實現(xiàn)微信公眾號獲取臨時二維碼功能,結(jié)合實例形式分析了java調(diào)用微信公眾號接口實現(xiàn)臨時二維碼生成功能相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • Java前后端的JSON傳輸方式(前后端JSON格式轉(zhuǎn)換)

    Java前后端的JSON傳輸方式(前后端JSON格式轉(zhuǎn)換)

    這篇文章主要介紹了Java前后端的JSON傳輸方式(前后端JSON格式轉(zhuǎn)換),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java根據(jù)控制臺實現(xiàn)定位異常

    Java根據(jù)控制臺實現(xiàn)定位異常

    這篇文章主要介紹了Java根據(jù)控制臺定位異常,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Java 高并發(fā)九:鎖的優(yōu)化和注意事項詳解

    Java 高并發(fā)九:鎖的優(yōu)化和注意事項詳解

    本文主要介紹Java高并發(fā)鎖的優(yōu)化和注意事項,這里整理了詳細的資料,并講解了 1. 鎖優(yōu)化的思路和方法 2. 虛擬機內(nèi)的鎖優(yōu)化 3. 一個錯誤使用鎖的案例 4. ThreadLocal及其源碼分析等知識,有需要的小伙伴可以參考下
    2016-09-09
  • 詳解Java如何在業(yè)務代碼中優(yōu)雅的使用策略模式

    詳解Java如何在業(yè)務代碼中優(yōu)雅的使用策略模式

    這篇文章主要為大家介紹了Java如何在業(yè)務代碼中優(yōu)雅的使用策略模式,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的可以了解下
    2023-08-08
  • SpringBoot部署在tomcat容器中運行的部署方法

    SpringBoot部署在tomcat容器中運行的部署方法

    這篇文章主要介紹了SpringBoot部署在tomcat容器中運行的部署方法,需要的朋友可以參考下
    2018-10-10

最新評論

华容县| 梧州市| 三原县| 霍州市| 秭归县| 乌拉特后旗| 林州市| 高唐县| 澳门| 万山特区| 桃园市| 腾冲县| 泌阳县| 肥城市| 漠河县| 天镇县| 台南市| 龙门县| 南陵县| 塔城市| 册亨县| 习水县| 济宁市| 沧州市| 简阳市| 启东市| 大理市| 嘉定区| 宝坻区| 翁源县| 武威市| 禹城市| 湾仔区| 衡阳县| 宽甸| 莱阳市| 乐东| 三亚市| 北京市| 仙游县| 唐山市|