還在手寫數據庫設計文檔?java一鍵生成

      網友投稿 850 2025-03-31

      前言:


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

      支持的數據庫列表:

      MySQL

      MariaDB

      TIDB

      Oracle

      SqlServer

      postgresql

      這些主流的數據庫都支持的。

      實現步驟:

      引入 pom.xml核心配置screw包

      cn.smallbun.screw screw-core 1.0.5

      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\"; // 可以設置 Word 或者 Markdown 格式 private static final EngineFileType FILE_OUTPUT_TYPE = EngineFileType.WORD; private static final String DOC_FILE_NAME = "數據庫表設計文檔"; private static final String DOC_VERSION = "V1.0.0"; private static final String DOC_DESCRIPTION = "數據庫表設計描述"; public static void main(String[] args) { // 創建 screw 的配置 Configuration config = Configuration.builder() // 版本 .version(DOC_VERSION) // 描述 .description(DOC_DESCRIPTION) // 數據源 .dataSource(buildDataSource()) // 引擎配置 .engineConfig(buildEngineConfig()) // 處理配置 .produceConfig(buildProcessConfig()) .build(); // 執行 screw,生成數據庫文檔 new DocumentationExecute(config).execute(); } /** * 創建數據源 */ private static DataSource buildDataSource() { // 創建 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); // 設置可以獲取 tables remarks 信息 hikariConfig.addDataSourceProperty("useInformationSchema", "true"); // 創建數據源 return new HikariDataSource(hikariConfig); } /** * 創建 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(); } /** * 創建 screw 的處理配置,一般可忽略 * 指定生成邏輯、當存在指定表、指定表前綴、指定表后綴時,將生成指定表,其余表不生成、并跳過忽略表配置 */ private static ProcessConfig buildProcessConfig() { return ProcessConfig.builder() // 根據名稱指定表生成 .designatedTableName(Collections.emptyList()) // 根據表前綴生成 .designatedTablePrefix(Collections.emptyList()) // 根據表后綴生成 .designatedTableSuffix(Collections.emptyList()) // 忽略表名 .ignoreTableName(Arrays.asList("test", "mytable","role","t_role","t_user")) // 忽略表前綴 //.ignoreTablePrefix(Collections.singletonList("t_")) // 忽略表后綴 //.ignoreTableSuffix(Collections.singletonList("_test")) .build(); } }

      生成的數據庫設計文檔演示

      表qrtz_blob_triggers

      編號

      名稱

      數據類型

      長度

      小數位

      允許空值

      主鍵

      默認值

      說明

      1

      SCHED_NAME

      varchar

      120

      0

      N

      Y

      2

      TRIGGER_NAME

      varchar

      200

      0

      N

      Y

      3

      TRIGGER_GROUP

      varchar

      200

      0

      N

      Y

      4

      BLOB_DATA

      blob

      65535

      0

      Y

      N

      表qrtz_calendars

      編號

      名稱

      數據類型

      長度

      小數位

      允許空值

      主鍵

      默認值

      說明

      1

      SCHED_NAME

      varchar

      120

      0

      N

      Y

      2

      CALENDAR_NAME

      varchar

      200

      0

      N

      Y

      3

      CALENDAR

      blob

      65535

      0

      N

      N

      表qrtz_cron_triggers

      編號

      名稱

      數據類型

      長度

      小數位

      允許空值

      主鍵

      默認值

      說明

      1

      SCHED_NAME

      varchar

      120

      0

      N

      Y

      2

      TRIGGER_NAME

      varchar

      200

      0

      N

      Y

      3

      TRIGGER_GROUP

      varchar

      200

      還在手寫數據庫設計文檔?java一鍵生成

      0

      N

      Y

      4

      CRON_EXPRESSION

      varchar

      120

      0

      N

      N

      5

      TIME_ZONE_ID

      varchar

      80

      0

      Y

      N

      這樣就解放雙手拉 。

      精彩專欄推薦:

      Java畢設項目精品實戰案例《100套》

      Java 數據庫

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:簽證流程圖制作模板圖片(簽證流程圖制作模板圖片)
      下一篇:Excel中表格不同數字設置不同顏色顯示的操作方法
      相關文章
      亚洲午夜电影一区二区三区| 亚洲AV无码一区二区三区系列| 亚洲网站在线播放| 亚洲av永久无码精品网站| 亚洲国产精品无码av| 在线观看亚洲精品福利片| 亚洲AV无码一区二三区| 国产亚洲精品国产福利在线观看| 亚洲精品第一国产综合亚AV| 亚洲成av人片天堂网无码】| 亚洲成av人无码亚洲成av人| 亚洲av永久无码天堂网| 精品国产亚洲AV麻豆| 国产亚洲精品欧洲在线观看| 午夜亚洲国产成人不卡在线| 国产午夜亚洲精品不卡| 国产成人精品久久亚洲高清不卡 | 国产亚洲色婷婷久久99精品| 中文字幕久久亚洲一区| 亚洲精品无码MV在线观看| 国产亚洲精品资源在线26u| 亚洲AV一宅男色影视| 亚洲AV无码久久精品狠狠爱浪潮| 亚洲AV日韩精品久久久久久久| 亚洲精品天天影视综合网| 精品亚洲成a人片在线观看| 亚洲国产精品日韩在线观看| 国产99在线|亚洲| 亚洲6080yy久久无码产自国产| 无码不卡亚洲成?人片| 国产午夜亚洲不卡| 亚洲91av视频| 亚洲国产韩国一区二区| 亚洲自国产拍揄拍| 亚洲av片在线观看| 国产成人亚洲影院在线观看| 亚洲女初尝黑人巨高清| 亚洲最大成人网色| 亚洲黄页网在线观看| 日本亚洲欧美色视频在线播放 | 亚洲第一页日韩专区|