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

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

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

前言

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

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

一、screw 是什么

screw是一個(gè)一鍵式生成數(shù)據(jù)庫(kù)文檔的開源工具包,目前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")
                //打開目錄
                .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í),將生成指定表,其余表不生成、并跳過忽略表配置
                //根據(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ì)

打開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é)果

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

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

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

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

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

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

盡情的修改完善吧,如果需要更多的數(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)論

南昌县| 金溪县| 高邮市| 广灵县| 多伦县| 永德县| 安吉县| 尉氏县| 金湖县| 工布江达县| 教育| 通许县| 龙岩市| 蕲春县| 开鲁县| 鄂伦春自治旗| 平度市| 徐汇区| 泸水县| 宝应县| 沙洋县| 南和县| 茌平县| 阜新市| 永泰县| 依安县| 南阳市| 绿春县| 宜昌市| 罗平县| 分宜县| 绥宁县| 灌阳县| 都兰县| 石河子市| 大丰市| 太湖县| 伊金霍洛旗| 饶阳县| 揭西县| 耿马|