【Java】SpringBoot+Screw轻松生成数据库设计文档

很久之前使用过一款名为screw的工具生成想要的数据库设计文档,有html跟word格式可以选择,使用起来十分便捷。

bash 复制代码
<!--screw 数据库文档生成-->
<dependency>
    <groupId>cn.smallbun.screw</groupId>
    <artifactId>screw-core</artifactId>
    <version>1.0.5</version>
</dependency>

刚好看到这么一篇相关的文章,在此给记录一下:

bash 复制代码
SpringBoot+Screw轻松生成数据库设计文档
https://mp.weixin.qq.com/s/Kk9uwqFAuWQELEeglwdxGA

当前screw支持MySQL、MariaDB、TIDB、Oracle、SqlServer、PostgreSQL、Cache DB(2016)。

附上代码,根据想要的效果进行设置生成即可!

bash 复制代码
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.HikariDataSource;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@SpringBootTest
public class ScrewTest {

   @Test
   void generate() {
      // 生成文件配置
      EngineConfig engineConfig = EngineConfig.builder()
            // 生成文件路径,自己mac本地的地址,这里需要自己更换下路径
            .fileOutputDir("C:\\数据库")
            // 打开目录
            .openOutputDir(false)
            // 文件类型 HTML/WORD/MD 三种格式
            .fileType(EngineFileType.WORD)
            // 生成模板实现
            .produceType(EngineTemplateType.freemarker).build();

      //数据库名称
      String[] dbNames = {"admin"};
      for (String dbName : dbNames) {
         HikariDataSource hikariDataSource = new HikariDataSource();
         //设置数据库连接
         hikariDataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/"+dbName+"?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true");
         hikariDataSource.setUsername("root");
         hikariDataSource.setPassword("root");
         // 生成文档配置(包含以下自定义版本号、描述等配置连接)
         Configuration config = Configuration.builder()
                 .version("1.0.1")
                 .description("数据库设计文档")
                 .dataSource(hikariDataSource)
                 .engineConfig(engineConfig)
                 .produceConfig(getProcessConfig())
                 .build();

         // 执行生成
         new DocumentationExecute(config).execute();
      }

   }

   /**
    * 配置想要生成的表+ 配置想要忽略的表
    * @return 生成表配置
    */
   public static ProcessConfig getProcessConfig(){
      // 忽略表名
      List<String> ignoreTableName = Arrays.asList("testa_testa","testb_testb");
      // 忽略表前缀
      List<String> ignorePrefix = Arrays.asList("testa","testb");
      // 忽略表后缀
      List<String> ignoreSuffix = Arrays.asList("_testa","_testb");
      return ProcessConfig.builder()
            //根据名称指定表生成 我需要生成所有表 这里暂时不设置
            .designatedTableName(new ArrayList<>())
            //根据表前缀生成 我需要生成所有表 这里暂时不设置
            .designatedTablePrefix(new ArrayList<>())
            //根据表后缀生成 我需要生成所有表 这里暂时不设置
            .designatedTableSuffix(new ArrayList<>())
            //忽略表名
            .ignoreTableName(ignoreTableName)
            //忽略表前缀
            .ignoreTablePrefix(ignorePrefix)
            //忽略表后缀
            .ignoreTableSuffix(ignoreSuffix).build();
   }
}
相关推荐
心灵宝贝9 分钟前
libopenssl-1_0_0-devel-1.0.2p RPM 包安装教程(openSUSE/SLES x86_64)
linux·服务器·数据库
光军oi27 分钟前
全栈开发杂谈————关于websocket若干问题的大讨论
java·websocket·apache
weixin_4196583142 分钟前
Spring 的统一功能
java·后端·spring
小许学java1 小时前
Spring AI-流式编程
java·后端·spring·sse·spring ai
haogexiaole2 小时前
Java高并发常见架构、处理方式、api调优
java·开发语言·架构
EnCi Zheng2 小时前
SpringBoot + PostgreSQL 密码认证失败 Windows 系统解决方案
windows·spring boot·postgresql
程序新视界2 小时前
MySQL中,IS NULL和IS NOT NULL不会走索引?错!
数据库·mysql·dba
EnCi Zheng2 小时前
@ResponseStatus 注解详解
java·spring boot·后端
wdfk_prog2 小时前
闹钟定时器(Alarm Timer)初始化:构建可挂起的定时器基础框架
java·linux·数据库
许长安2 小时前
Redis(二)——Redis协议与异步方式
数据库·redis·junit