java如何实现自动生成数据库设计文档
更新时间:2021年11月22日 11:16:45 作者:java李杨勇
以前我们还需要手写数据库设计文档、现在可以通过引入screw核心包来实现Java 数据库文档一键生成。本文将具体介绍一下如何通过java自动生成数据库设计文档,需要的朋友可以参考下
前言
以前我们还需要手写数据库设计文档、现在可以通过引入screw核心包来实现Java 数据库文档一键生成。话不多说、直接上代码演示。
支持的数据库列表:
- MySQL
- MariaDB
- TIDB
- Oracle
- SqlServer
- PostgreSQL
- 这些主流的数据库都支持的。
实现步骤
引入 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\\"; // 可以设置 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.<String>emptyList()) // 根据表前缀生成 .designatedTablePrefix(Collections.<String>emptyList()) // 根据表后缀生成 .designatedTableSuffix(Collections.<String>emptyList()) // 忽略表名 .ignoreTableName(Arrays.asList("test", "mytable","role","t_role","t_user")) // 忽略表前缀 //.ignoreTablePrefix(Collections.singletonList("t_")) // 忽略表后缀 //.ignoreTableSuffix(Collections.singletonList("_test")) .build(); } }
生成的数据库设计文档演示
表qrtz_blob_triggers
表qrtz_calendars
表qrtz_cron_triggers
这样就解放双手拉 。
到此这篇关于java如何实现自动生成数据库设计文档的文章就介绍到这了,更多相关java自动生成数据库文档内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
浅谈Mybatis Plus的BaseMapper的方法是如何注入的
我们在用的时候经常就是生产自定义的Mapper继承自BaseMapper,那么BaseMapper怎么被注入到mybatis里的,本文就详细的介绍一下,感兴趣的可以了解一下2021-09-09springboot mybatis druid配置多数据源教程
这篇文章主要介绍了springboot mybatis druid配置多数据源教程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-11-11从Mybatis-Plus开始认识SerializedLambda的详细过程
这篇文章主要介绍了从Mybatis-Plus开始认识SerializedLambda,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下2024-07-07java 将byte中的有效长度转换为String的实例代码
下面小编就为大家带来一篇java 将byte中的有效长度转换为String的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-11-11
最新评论