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

SpringBoot整合screw實(shí)現(xiàn)自動(dòng)生成數(shù)據(jù)庫(kù)設(shè)計(jì)文檔

 更新時(shí)間:2022年11月24日 09:31:40   作者:洛陽(yáng)泰山  
使用navicat工作的話,導(dǎo)出的格式是excel不符合格式,還得自己整理。所以本文將用screw工具包,整合到springboot的項(xiàng)目中便可以自動(dòng)生成數(shù)據(jù)庫(kù)設(shè)計(jì)文檔,非常方便,下面就分享一下教程

前言

最近因?yàn)楣ぷ鞯男枰?,讓我寫?shù)據(jù)庫(kù)設(shè)計(jì)文檔,可是我最煩文檔類的工作了,之前寫過(guò)一篇文章(在下文補(bǔ)充內(nèi)容中),使用的navicat工作,不過(guò)導(dǎo)出的格式是excel不符合格式,還得自己整理,現(xiàn)在用screw 工具包,整合到springboot的項(xiàng)目中便可以自動(dòng)生成數(shù)據(jù)庫(kù)設(shè)計(jì)文檔,非常方便,下面就分享一下教程

提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、screw 是什么

screw是一個(gè)一鍵式生成數(shù)據(jù)庫(kù)文檔的開(kāi)源工具包,目前screw可以生成word、md和html格式類的文檔,支持freemarker和velocity兩種模板引擎。數(shù)據(jù)源支持HikariDataSource,DruidDataSource可能會(huì)發(fā)生類型轉(zhuǎn)換報(bào)錯(cuò)。

二、使用步驟

1.引入庫(kù)

pom文件中引入jar依賴

<!--  數(shù)據(jù)庫(kù)設(shè)計(jì)文檔生成工具-->
<dependency>
    <groupId>cn.smallbun.screw</groupId>
    <artifactId>screw-core</artifactId>
    <version>1.0.5</version>
</dependency>

2.代碼示例

代碼如下(下面用的是postgres數(shù)據(jù)庫(kù)):

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.ArrayList;
import java.util.List;
 
public class DatabaseDesignDocUtil {
 
    public static void main(String[] args) {
        documentGeneration();
    }
 
    /**
     * 文檔生成
     */
    public static void documentGeneration() {
        //數(shù)據(jù)源
        HikariConfig hikariConfig = new HikariConfig();
        hikariConfig.setDriverClassName("org.postgresql.Driver");
        hikariConfig.setJdbcUrl("jdbc:postgresql://39.164.52.80:5432/work_face");
        hikariConfig.setUsername("postgres");
        hikariConfig.setPassword("POSTGRES");
        //設(shè)置可以獲取tables remarks信息
        hikariConfig.addDataSourceProperty("useInformationSchema", "true");
        hikariConfig.setMinimumIdle(2);
        hikariConfig.setMaximumPoolSize(5);
        DataSource dataSource = new HikariDataSource(hikariConfig);
        //生成配置
        EngineConfig engineConfig = EngineConfig.builder()
                //生成文件路徑
                .fileOutputDir("C:\\Users\\tarzan\\Desktop\\doc")
                //打開(kāi)目錄
                .openOutputDir(true)
                //文件類型
                .fileType(EngineFileType.WORD)
                //生成模板實(shí)現(xiàn)
                .produceType(EngineTemplateType.freemarker)
                //自定義文件名稱
                .fileName("智能工作面數(shù)據(jù)庫(kù)設(shè)計(jì)文檔").build();
 
        //忽略表
        List<String> ignoreTableName = new ArrayList<>();
        ignoreTableName.add("test_user");
        ignoreTableName.add("test_group");
        //忽略表前綴
        ArrayList<String> ignorePrefix = new ArrayList<>();
        ignorePrefix.add("test_");
        //忽略表后綴
        ArrayList<String> ignoreSuffix = new ArrayList<>();
        ignoreSuffix.add("_test");
        ProcessConfig processConfig = ProcessConfig.builder()
                //指定生成邏輯、當(dāng)存在指定表、指定表前綴、指定表后綴時(shí),將生成指定表,其余表不生成、并跳過(guò)忽略表配置
                //根據(jù)名稱指定表生成
                .designatedTableName(new ArrayList<>())
                //根據(jù)表前綴生成
                .designatedTablePrefix(new ArrayList<>())
                //根據(jù)表后綴生成
                .designatedTableSuffix(new ArrayList<>())
                //忽略表名
                .ignoreTableName(ignoreTableName)
                //忽略表前綴
                .ignoreTablePrefix(ignorePrefix)
                //忽略表后綴
                .ignoreTableSuffix(ignoreSuffix).build();
        //配置
        Configuration config = Configuration.builder()
                //版本
                .version("1.0.0")
                //描述
                .description("數(shù)據(jù)庫(kù)設(shè)計(jì)文檔生成")
                //數(shù)據(jù)源
                .dataSource(dataSource)
                //生成配置
                .engineConfig(engineConfig)
                //生成配置
                .produceConfig(processConfig)
                .build();
        //執(zhí)行生成
        new DocumentationExecute(config).execute();
    }
 
}

需要改成mysql等別的數(shù)據(jù)庫(kù)的,請(qǐng)?jiān)诖a中改下驅(qū)動(dòng)配置和連接配置。

三、使用方法

idea等編輯器里,運(yùn)行main的主方法即可。

控制臺(tái)輸出示例

生成文檔展示

補(bǔ)充

mysql數(shù)據(jù)庫(kù)設(shè)計(jì)文檔-導(dǎo)出字段設(shè)計(jì)

打開(kāi)navicat,新建查詢窗口

查詢sql

SELECT
	TABLE_NAME 表名,
	COLUMN_NAME 字段名稱,
	COLUMN_TYPE 字段類型,
IF
	( IS_NULLABLE = 'YES', '是', '否' ) 是否可為空,
IF
	( COLUMN_KEY = 'PRI', '是', '否' ) 是否主鍵,
	COLUMN_COMMENT 字段注釋 
FROM
	INFORMATION_SCHEMA.COLUMNS 
WHERE
	TABLE_SCHEMA = '數(shù)據(jù)庫(kù)名稱' 
	-- 數(shù)據(jù)表名,可以不填寫,查詢?nèi)勘斫Y(jié)構(gòu)
	AND TABLE_NAME = '表名'

查詢結(jié)果

開(kāi)始導(dǎo)出-圖文描述

點(diǎn)擊下一步,修改導(dǎo)出文件名稱后,再點(diǎn)擊下一步

勾選包含列的標(biāo)題,點(diǎn)擊下一步 

點(diǎn)擊開(kāi)始,進(jìn)行導(dǎo)出

導(dǎo)出完畢,打開(kāi)導(dǎo)出的excel查看結(jié)果

到這里我們所需要的數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)已經(jīng)出來(lái)了,

盡情的修改完善吧,如果需要更多的數(shù)據(jù)和字段定義記住這個(gè)表

INFORMATION_SCHEMA

你所需要的表結(jié)構(gòu)都在下面這個(gè)表中。感興趣的朋友可以查驗(yàn)一番。

COLUMNS

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

相關(guān)文章

  • 關(guān)于EntityWrapper的in用法

    關(guān)于EntityWrapper的in用法

    這篇文章主要介紹了關(guān)于EntityWrapper的in用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 簡(jiǎn)單介紹線性表以及如何實(shí)現(xiàn)雙鏈表

    簡(jiǎn)單介紹線性表以及如何實(shí)現(xiàn)雙鏈表

    本文先介紹線性表的幾個(gè)基本組成部分:數(shù)組、單向鏈表、雙向鏈表;隨后給出雙向鏈表的C、C++和Java三種語(yǔ)言的實(shí)現(xiàn),需要的朋友可以參考下
    2015-07-07
  • JAVA使用隨機(jī)數(shù)實(shí)現(xiàn)概率抽獎(jiǎng)

    JAVA使用隨機(jī)數(shù)實(shí)現(xiàn)概率抽獎(jiǎng)

    這篇文章主要為大家詳細(xì)介紹了JAVA使用隨機(jī)數(shù)實(shí)現(xiàn)概率抽獎(jiǎng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • IntelliJ?IDEA?2022.1.1?沒(méi)有CVS的過(guò)程分析

    IntelliJ?IDEA?2022.1.1?沒(méi)有CVS的過(guò)程分析

    這篇文章主要介紹了IntelliJ?IDEA?2022.1.1?沒(méi)有CVS的過(guò)程解析,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Java簡(jiǎn)單實(shí)現(xiàn)猜數(shù)字游戲附C語(yǔ)言版本

    Java簡(jiǎn)單實(shí)現(xiàn)猜數(shù)字游戲附C語(yǔ)言版本

    猜數(shù)字是興起于英國(guó)的益智類小游戲,起源于20世紀(jì)中期,一般由兩個(gè)人或多人玩,也可以由一個(gè)人和電腦玩。游戲規(guī)則為一方出數(shù)字,一方猜,今天我們來(lái)用Java和C語(yǔ)言分別把這個(gè)小游戲?qū)懗鰜?lái)練練手
    2021-11-11
  • IntelliJ IDEA使用教程從入門到上癮(2019圖文版)

    IntelliJ IDEA使用教程從入門到上癮(2019圖文版)

    這篇文章主要介紹了IntelliJ IDEA使用教程從入門到上癮(2019圖文版),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 詳解Java中的不可變對(duì)象

    詳解Java中的不可變對(duì)象

    這篇文章主要介紹了Java中的不可變對(duì)象的相關(guān)知識(shí),文中代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以參考下
    2020-06-06
  • Java switch支持的數(shù)據(jù)類型詳解

    Java switch支持的數(shù)據(jù)類型詳解

    這篇文章主要介紹了Java switch支持的數(shù)據(jù)類型詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 下載遠(yuǎn)程maven倉(cāng)庫(kù)的jar?手動(dòng)放到本地倉(cāng)庫(kù)詳細(xì)操作

    下載遠(yuǎn)程maven倉(cāng)庫(kù)的jar?手動(dòng)放到本地倉(cāng)庫(kù)詳細(xì)操作

    這篇文章主要介紹了如何下載遠(yuǎn)程maven倉(cāng)庫(kù)的jar?手動(dòng)放到本地倉(cāng)庫(kù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • java常見(jiàn)的字符串操作和日期操作匯總

    java常見(jiàn)的字符串操作和日期操作匯總

    本文主要對(duì)java 常見(jiàn)的字符串操作和日期操作進(jìn)行整理。具有一定的參考價(jià)值,需要的朋友一起來(lái)看下吧
    2016-12-12

最新評(píng)論