Java实用工具--mysql数据库表结构文档导出

通过自定义脚本方式导出数据库表结构文件
1 在idea中创建一个maven项目导入相关依赖

<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>1.0.5</version>
</dependency>

<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.5</version>
</dependency>

2 编写测试类和main方法

public class ExportDBStruct {
public static void main(String[] args) {
documentGeneration();
}

/**
* 文档生成
*/
public static void documentGeneration() {
    //数据源
    HikariConfig hikariConfig = new HikariConfig();
    hikariConfig.setDriverClassName("com.mysql.jdbc.Driver");
    hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false");
    hikariConfig.setUsername("root");
    hikariConfig.setPassword("123456");
    //设置可以获取tables remarks信息
    hikariConfig.addDataSourceProperty("useInformationSchema", "true");
    hikariConfig.setMinimumIdle(2);
    hikariConfig.setMaximumPoolSize(5);
    DataSource dataSource = new HikariDataSource(hikariConfig);
    //生成配置
    EngineConfig engineConfig = EngineConfig.builder()
            //生成文件路径
            .fileOutputDir("D:/test/")
            //打开目录
            .openOutputDir(true)
            //文件类型可以选择HTML、MD、WORLD
            .fileType(EngineFileType.HTML)
            //生成模板实现
            .produceType(EngineTemplateType.freemarker)
            //自定义文件名称
            .fileName("数据库设计文档").build();

// 注释部分需要根据实际需求过滤哪些表
// //忽略表
// ArrayList<String> ignoreTableName = new ArrayList<>();
// ignoreTableName.add("test_user");
// ignoreTableName.add("test_group");
// //根据表前缀生成
// ArrayList<String> preTableName = new ArrayList<>();
// preTableName.add("biz_");
// //根据指定表生成
// ArrayList<String> designTableName = new ArrayList<>();
// designTableName.add("base_ddct");
//忽略表前缀
// ArrayList<String> ignorePrefix = new ArrayList<>();
// ignorePrefix.add("test_");
// //忽略表后缀
// ArrayList<String> ignoreSuffix = new ArrayList<>();
// ignoreSuffix.add("_test");
ProcessConfig processConfig = ProcessConfig.builder().build();
//指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置
//根据名称指定表生成
// .designatedTableName(designTableName)
// //根据表前缀生成
// .designatedTablePrefix(preTableName).build();
// //根据表后缀生成
// .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();
}
}

3 执行main方法后在指定保存的目录查看生成的文档。


生成对应的HTML文档
文档第一个表格为目录

4 点击红框内的表名跳转到该表结构的明细


业务表字段明细
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容