专业的JAVA编程教程与资源

网站首页 > java教程 正文

GitHub精选 | 告别手写,一键生成数据库表文档

temp10 2024-11-05 11:51:23 java教程 14 ℃ 0 评论

《GitHub精选》是我们分享Github中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个可以生成数据库表结构文档的工具——screw。

在企业开发中,我们经常需要投入大量时间来编写数据库文档, 而且对于一些历史项目来说,没有数据库文档对后期的运维和二次开发带来很大困扰,这时有一个可以自动生成数据库文档的工具就很方便了。 screw是一个基于Java开发的数据库表结构文档生成工具,目前支持MySQL、Oracle、SqlServer、MariaDB、TIDB、PostareSQL和CacheDB,并且支持html、word和markdown格式的生成。

GitHub精选 | 告别手写,一键生成数据库表文档

快速使用:

  • 引入依赖
<dependency>

<groupId>cn.smallbun.screw</groupId>

<artifactId>screw-core</artifactId>

<version>${lastVersion}</version>

</dependency>
  • 编写代码
/**

* 文档生成

*/

void documentGeneration() {

//数据源

HikariConfig hikariConfig = new HikariConfig();

hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");

hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/database");

hikariConfig.setUsername("root");

hikariConfig.setPassword("password");

//设置可以获取tables remarks信息

hikariConfig.addDataSourceProperty("useInformationSchema", "true");

hikariConfig.setMinimumIdle(2);

hikariConfig.setMaximumPoolSize(5);

DataSource dataSource = new HikariDataSource(hikariConfig);

//生成配置

EngineConfig engineConfig = EngineConfig.builder()

//生成文件路径

.fileOutputDir(fileOutputDir)

//打开目录

.openOutputDir(true)

//文件类型

.fileType(EngineFileType.HTML)

//生成模板实现

.produceType(EngineTemplateType.freemarker)

//自定义文件名称

.fileName("自定义文件名称").build();

//忽略表

ArrayList<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()

//指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置

//根据名称指定表生成

.designatedTableName(new ArrayList<>())

//根据表前缀生成

.designatedTablePrefix(new ArrayList<>())

//根据表后缀生成

.designatedTableSuffix(new ArrayList<>())

//忽略表名

.ignoreTableName(ignoreTableName)

//忽略表前缀

.ignoreTablePrefix(ignorePrefix)

//忽略表后缀

.ignoreTableSuffix(ignoreSuffix).build();

//配置

Configuration config = Configuration.builder()

//版本

.version("1.0.0")

//描述

.description("数据库设计文档生成")

//数据源

.dataSource(dataSource)

//生成配置

.engineConfig(engineConfig)

//生成配置

.produceConfig(processConfig)

.build();

//执行生成

new DocumentationExecute(config).execute();

}

screw对达梦、人大金仓等一些国产数据库的支持还在开发中,感兴趣的同学可以关注一下项目进度。另外,由于一些驱动版本造成的问题也会在GitHub中找到相关答案。


GitHub: https://github.com/pingfangushi/screw

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表