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

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)文章

最新評(píng)論

平阴县| 磴口县| 闸北区| 藁城市| 界首市| 鹿邑县| 武夷山市| 项城市| 壶关县| 镇安县| 大方县| 扶沟县| 克什克腾旗| 门源| 镇宁| 大冶市| 郓城县| 保定市| 叙永县| 安远县| 万源市| 肥东县| 会东县| 牙克石市| 彰武县| 福州市| 射洪县| 泰兴市| 龙口市| 富民县| 波密县| 兰西县| 光泽县| 顺昌县| 绍兴县| 龙海市| 新乡市| 会昌县| 雷州市| 辉县市| 双鸭山市|