目录

MySQL数据库设计文档生成

【MySQL】数据库设计文档生成

MySQL数据库设计文档生成


文章目录


前言

记录MySQL数据库设计文档生成,旨在方便自己,也能方便他人。

Gitee源码: https://gitee.com/liuyimin430/mysql-document.git

0、全局浏览

https://i-blog.csdnimg.cn/blog_migrate/d5115d4ba3d510a63516db826a863f87.png#pic_center


1、引入依赖

<!-- screw核心 -->
<dependency>
    <groupId>cn.smallbun.screw</groupId>
    <artifactId>screw-core</artifactId>
    <version>1.0.5</version>
</dependency>
<!--MySQL驱动-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
<!-- HikariCP  数据库连接池-->
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>3.4.5</version>
</dependency>

2、启动类

@SpringBootApplication
public class MysqldocumentApplication {

    public static void main(String[] args) {
        SpringApplication.run(MysqldocumentApplication.class, args);
    }

}

3、配置文件

# 暂无配置,数据库驱动的选择直接在实现类中指定,更清晰明了

4、实现类

数据源:HikariCP 线程池, SpringBoot 2.0开始内置了HikariCP,2.0之前的版本需要引入依赖

数据库驱动:

  • MySQL5.7驱动: com.mysql.jdbc.Driver
  • MySQL5.7之后版本的驱动: com.mysql.cj.jdbc.Driver
@SpringBootTest
class MysqldocumentApplicationTests {

    @Test
    void documentGeneration() {
        //数据源
        HikariConfig hikariConfig = new HikariConfig();
        hikariConfig.setDriverClassName("com.mysql.jdbc.Driver");
        hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/数据库名?characterEncoding=UTF-8");
        hikariConfig.setUsername("root");
        hikariConfig.setPassword("密码");
        //设置可以获取tables remarks信息
        hikariConfig.addDataSourceProperty("useInformationSchema", "true");
        hikariConfig.setMinimumIdle(2);
        hikariConfig.setMaximumPoolSize(5);
        DataSource dataSource = new HikariDataSource(hikariConfig);
        
        // 1、生成文件配置
        EngineConfig engineConfig = EngineConfig.builder()
                //生成文件路径(改成自己的生成路径)
                .fileOutputDir("D:\\mysqldocument")
                //生成后是否立即打开目录
                .openOutputDir(true)
                //文件类型  有HTML、WORD、MD三种枚举选择
                .fileType(EngineFileType.HTML)
                //生成模板实现
                .produceType(EngineTemplateType.freemarker)
                //自定义文件名称
                .fileName("测试生成数据库文档").build();

        //忽略表名(可选)
        ArrayList<String> ignoreTableName = new ArrayList<>();
        //ignoreTableName.add("xxl_job_group");
        //ignoreTableName.add("xxl_job_info");
        // 忽略表前缀(可选)
		ArrayList<String> ignorePrefix = new ArrayList<>();
		//ignorePrefix.add("xxl_");
        // 忽略表后缀(可选)
		ArrayList<String> ignoreSuffix = new ArrayList<>();
		//ignoreSuffix.add("_user");

		// 2、配置想要忽略的表(可选)
        ProcessConfig processConfig = ProcessConfig.builder()
        		.ignoreTableName(ignoreTableName)
                .ignoreTablePrefix(ignorePrefix)
                .ignoreTableSuffix(ignoreSuffix)
                .build();
                //指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置
                //根据名称指定表生成
                //.designatedTableName(new ArrayList<>())
                //根据表前缀生成
                //.designatedTablePrefix(new ArrayList<>())
                //根据表后缀生成
                //.designatedTableSuffix(new ArrayList<>())
                //忽略表名
                //.ignoreTableName(ignoreTableName)
                //.build();
        
        // 3、生成文档配置(包含以下自定义版本号、标题、描述(数据库名 + 描述 = 文件名)等配置连接)
        Configuration config = Configuration.builder()
                //版本
                .version("1.0.0")
                //描述
                .description("数据库设计文档生成")
                //数据源
                .dataSource(dataSource)
                //生成配置
                .engineConfig(engineConfig)
                //生成配置
                .produceConfig(processConfig)
                .build();
                
        // 4、执行生成
        new DocumentationExecute(config).execute();
    }
}

5、成品展示

https://i-blog.csdnimg.cn/blog_migrate/d730b18a2e876f964882b13f07739605.png#pic_center