一款开源数据库表结构文档生成器

介绍

在我们平时的开发中,有时候不可避免的需要查看数据库表字段信息,通过数据库查看特别繁琐,今天我推荐一款特别好用的开源组件screw可以一键式生成数据库文档。

特性

  • 简洁、轻量、设计良好

  • 多种格式文档(word、md和html

  • 可灵活扩展(支持HikariDataSource,DruidDataSource

  • 支持自定义模板(支持freemarker和velocity两种模板引擎

目前已支持的主流数据库

  • MySQL

  • MariaDB

  • TIDB

  • Oracle

  • SqlServer

  • PostgreSQL

  • Cache DB(2016)

使用方式

新建SpringBoot工程  pom.xml引入

<dependency>
    <groupId>cn.smallbun.screwgroupId>
    <artifactId>screw-coreartifactId>
    <version>${lastVersion}version>
 dependency>

配置数据源

spring.datasource.url=jdbc:mysql://XXX:3306/XXX?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#按照码云文档说明: MySQL数据库表和列字段有说明、生成文档没有说明
spring.datasource.xa.properties.userInformationSchema= true

编写测试类并测试

@SpringBootTest
class ScrewApplicationTests {

    @Autowired
    private ApplicationContext applicationContext;

    @Test
    void testGenerateDatabaseDocument() {

        DataSource dataSource = applicationContext.getBean(DataSource.class);

        EngineConfig engineConfig = EngineConfig.builder()
                //生成文件路径
                .fileOutputDir("/resources")
                // 打开目录
                .openOutputDir(true)
                // 文件类型,支持word、md和html
                .fileType(EngineFileType.HTML)

                //生成模板实现,支持freemarker和velocity
                .produceType(EngineTemplateType.freemarker).build();

        //生成配置文档
        Configuration configuration = Configuration.builder()
                .version("1.0.3")
                .description("学生数据库文档描述信息")
                .dataSource(dataSource)
                .engineConfig(engineConfig)
                .produceConfig(getProcessConfig())
                .build();

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

    /**
     * 配置想要生成的表 + 配置想要忽略的表
     * @return     */

    private ProcessConfig getProcessConfig() {

        // 忽略表名
        List<String> ignoreTable = Arrays.asList("aa","test_group");

        //忽略表前缀,如忽略a开头的数据库表
        List<String> ignorePrefix = Arrays.asList("sys");
        //忽略表后缀
        List<String> ignoreSuffix = Arrays.asList("month");

        return ProcessConfig.builder()
                // 根据名称生成指定表
                .designatedTableName(new ArrayList<String>())
                // 根据表前缀生成
                .designatedTablePrefix(new ArrayList<String>())
                // 根据表后缀生成
                .designatedTableSuffix(new ArrayList<String>())
                // 忽略表名
                .ignoreTableName(ignoreTable)
                // 忽略表前缀
                .ignoreTablePrefix(ignorePrefix)
                // 忽略表后缀
                .ignoreTableSuffix(ignoreSuffix).build();
    }}

导出的数据库表结构文档效果如下:


非常清晰,不过相信这款工具肯定对各位程序猿小伙伴有所帮助,大家赶紧来用用看吧。

点击下方卡片/微信搜索,关注公众号“天宇文创意乐派”(ID:gh_cc865e4c536b)

回复“screw”获取仓库地址

往期推荐

全方位解读 package.json

光追+DLSS,iGame RTX 30系显卡搭建梦幻仙剑世界

Spring Cloud Feign如何实现JWT令牌中继

Facebook 宣布改名为Meta,未来重点开发元宇宙!

正义没有迟到,他们还是赢了跟阿里的官司!

本文使用 文章同步助手 同步

你可能感兴趣的:(一款开源数据库表结构文档生成器)