【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();
   }
}
相关推荐
流年似水~5 分钟前
MCP协议实战:从零搭建一个让Claude能“看见“数据库的工具服务
数据库·人工智能·程序人生·ai·ai编程
2401_8714928514 分钟前
Vue.js监听器watch利用回调函数处理级联下拉框数据联动
jvm·数据库·python
:12130 分钟前
java基础
java·开发语言
志栋智能1 小时前
超自动化安全:构建智能安全运营的核心引擎
大数据·运维·服务器·数据库·安全·自动化·产品运营
曹牧1 小时前
Spring:@RequestMapping注解,匹配的顺序与上下文无关
java·后端·spring
daixin88481 小时前
cursor无法正常使用gpt5.5等模型解决方案
java·redis·cursor
zhoutongsheng2 小时前
C#怎么实现Swagger文档 C#如何在ASP.NET Core中集成Swagger自动生成API文档【框架】
jvm·数据库·python
WinterKay2 小时前
【开源】我写了一个轻量级本地数据库浏览工具,支持 MySQL/Redis 只读查询
数据库·mysql·开源
韦禾水2 小时前
记录一次项目部署到tomcat的异常
java·tomcat
曦月合一2 小时前
树莓派安装jdk、tomcat、vnc、谷歌浏览器开机自启等环境配置
java·tomcat·树莓派