zoukankan      html  css  js  c++  java
  • 巨好用的数据库文档输出工具!!!!SpringBoot + Screw 一键生成数据库文档

    https://mp.weixin.qq.com/s/6Q6ptDp8o7sN7F1mCs31Pw

     

    SpringBoot + Screw 一键生成数据库文档

    下面是符合我配置的信息

    依赖

    <!-- screw 库,简洁好用的数据库表结构文档生成器 -->
            <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>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.22</version>
            </dependency>

    主要类

    package io.renren;
    
    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.HikariConfig;
    import com.zaxxer.hikari.HikariDataSource;
    
    import javax.sql.DataSource;
    import java.util.Arrays;
    import java.util.Collections;
    
    public class ScrewMain {
    
        private static final String DB_URL = "jdbc:mysql://127.0.0.1:3306";
        private static final String DB_NAME = "jitai";
        private static final String DB_USERNAME = "root";
        private static final String DB_PASSWORD = "root";
    
        private static final String FILE_OUTPUT_DIR = "D:/screw_test";
        private static final EngineFileType FILE_OUTPUT_TYPE = EngineFileType.WORD; // 可以设置 Word 或者 Markdown 格式
        private static final String DOC_FILE_NAME = "数据库文档";
        private static final String DOC_VERSION = "1.0.0";
        private static final String DOC_DESCRIPTION = "文档描述";
    
        public static void main(String[] args) {
            // 创建 screw 的配置
            Configuration config = Configuration.builder()
                    .version(DOC_VERSION)  // 版本
                    .description(DOC_DESCRIPTION) // 描述
                    .dataSource(buildDataSource()) // 数据源
                    .engineConfig(buildEngineConfig()) // 引擎配置
                    .produceConfig(buildProcessConfig()) // 处理配置
                    .build();
    
            // 执行 screw,生成数据库文档
            new DocumentationExecute(config).execute();
        }
    
        /**
         * 创建数据源
         */
        private static DataSource buildDataSource() {
            // 创建 HikariConfig 配置类
            HikariConfig hikariConfig = new HikariConfig();
            hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
            hikariConfig.setJdbcUrl(DB_URL + "/" + DB_NAME+"?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai");
            hikariConfig.setUsername(DB_USERNAME);
            hikariConfig.setPassword(DB_PASSWORD);
            hikariConfig.addDataSourceProperty("useInformationSchema", "true"); // 设置可以获取 tables remarks 信息
            // 创建数据源
            return new HikariDataSource(hikariConfig);
        }
    
        /**
         * 创建 screw 的引擎配置
         */
        private static EngineConfig buildEngineConfig() {
            return EngineConfig.builder()
                    .fileOutputDir(FILE_OUTPUT_DIR) // 生成文件路径
                    .openOutputDir(false) // 打开目录
                    .fileType(FILE_OUTPUT_TYPE) // 文件类型
                    .produceType(EngineTemplateType.freemarker) // 文件类型
                    .fileName(DOC_FILE_NAME) // 自定义文件名称
                    .build();
        }
    
        /**
         * 创建 screw 的处理配置,一般可忽略
         * 指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置
         */
        private static ProcessConfig buildProcessConfig() {
            return ProcessConfig.builder()
                    .designatedTableName(Collections.<String>emptyList())  // 根据名称指定表生成
                    .designatedTablePrefix(Collections.<String>emptyList()) //根据表前缀生成
                    .designatedTableSuffix(Collections.<String>emptyList()) // 根据表后缀生成
                    .ignoreTableName(Arrays.asList("test_user", "test_group")) // 忽略表名
                    .ignoreTablePrefix(Collections.singletonList("test_")) // 忽略表前缀
                    .ignoreTableSuffix(Collections.singletonList("_test")) // 忽略表后缀
                    .build();
        }
    
    }
  • 相关阅读:
    LintCode-乱序字符串
    LintCode-字符串查找
    LintCode-比较字符串
    LintCode-两个字符串是变位词
    LintCode-不同的子序列
    View(视图)——AutoCompleteTextView、Spinner
    View(视图)——GridView(点击长按删除图片)
    给图片下加字符
    View(视图)——ListView:BaseAdapter、SimpleCursorAdapter
    View(视图)——ListView:ArrayAdapter、SimpleAdapter
  • 原文地址:https://www.cnblogs.com/a1304908180/p/15044058.html
Copyright © 2011-2022 走看看