软件编程
位置:首页>> 软件编程>> java编程>> java快速生成数据库文档详情

java快速生成数据库文档详情

作者:小码农叔叔  发布时间:2023-11-10 05:25:20 

标签:java,生成,数据库,文档

前言

在产品发布前夕,经常因为编写各类设计文档感到心碎,倒不是难,而是比较繁琐,举例来说,像编写数据库文档这种操作来说,对于新手,甚至很多有一定开发经验的同学来说,都觉得是一件费力得事情,下面推荐一个小组件,并提供一段程序,帮助有需要得同学快速生成数据库文档,已解决这个麻烦得小事

环境准备

一个开发数据库,以下截取了部分表,实际中可能远不止这些

java快速生成数据库文档详情

1、导入pom依赖

<!-- screw核心 -->
       <dependency>
           <groupId>cn.smallbun.screw</groupId>
           <artifactId>screw-core</artifactId>
           <version>1.0.3</version>
       </dependency>

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

<!--mysql driver-->
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>8.0.11</version>
       </dependency>

2、数据库连接工具类

public class JdbcUtils {
   public static String DRIVER_NAME = "com.mysql.jdbc.Driver";
   public static String JDBC_URL = "jdbc:mysql://IP:3306/tenant";
   public static String USER_NAME = "zhangcy";
   public static String PASSWORD = "zhangcy";
   public static DataSource getDataSourceFonfig() {
       //数据源
       HikariConfig hikariConfig = new HikariConfig();
       hikariConfig.setDriverClassName(DRIVER_NAME);
       hikariConfig.setJdbcUrl(JDBC_URL);
       hikariConfig.setUsername(USER_NAME);
       hikariConfig.setPassword(PASSWORD);
       //设置可以获取tables remarks信息
       hikariConfig.addDataSourceProperty("useInformationSchema", "true");
       hikariConfig.setMinimumIdle(2);
       hikariConfig.setMaximumPoolSize(5);
       return new HikariDataSource(hikariConfig);
   }
   public static Connection getConnection() {
       Connection conn = null;
       try {
           Class.forName(DRIVER_NAME).newInstance();
           conn = java.sql.DriverManager.getConnection(JDBC_URL, USER_NAME, PASSWORD);
           return conn;
       } catch (Exception e) {
           e.printStackTrace();
       }
       return conn;
   }
   /**
    * 获取某个数据库下的所有表
    *
    * @return
    */
   public static List<String> getTablesNames() {
       List<String> tables = new ArrayList<>();
       Connection connection = getConnection();
       ResultSet rs = null;
       Statement st = null;
       try {
           st = connection.createStatement();
           rs = st.executeQuery("show tables");
           while (rs.next()) {
               String string = rs.getString(1);
               tables.add(string);
           }
       } catch (Exception e) {
           e.printStackTrace();
       } finally {
           try {
               rs.close();
               st.close();
               connection.close();
           } catch (Exception e) {
               e.printStackTrace();
           }
       }
       return tables;
   }
}

3、生成数据库文档核心方法

public class GenerateDoc {
   /**
    * 生成的文档本地路径
    */
   public static final String LOCAL_PATH= "D:\\soft\\table";
   public static void main(String[] args) {
       DataSource dataSource = JdbcUtils.getDataSourceFonfig();
       EngineConfig engineConfig = EngineConfig.builder()
               //导出文件地址
               .fileOutputDir(LOCAL_PATH)
               //是否打开文件夹
               .openOutputDir(true)
               //文件类型:html、doc、mockdown
               .fileType(EngineFileType.WORD)
               //模板引擎
               .produceType(EngineTemplateType.freemarker).build();
       ProcessConfig processConfig = ProcessConfig.builder()
               //指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置
               //根据名称指定表生成
               .designatedTableName(JdbcUtils.getTablesNames())
               //根据表前缀生成
               .designatedTablePrefix(new ArrayList<>())
               //根据表后缀生成
               .designatedTableSuffix(new ArrayList<>()).build();

//设置生成pojo相关配置
       Configuration config = Configuration.builder()
               .version("1.0.0")
               .description("数据库设计文档")
               .dataSource(dataSource)
               .engineConfig(engineConfig)
               .produceConfig(processConfig).build();
       new DocumentationExecute(config).execute();
   }
}

本段方法中有大量得注释,解释如何生成数据库文档的步骤,以及各个配置参数的作用,拿到程序之后,只需运行main方法即可,注意,可以根据自己的需要,选择生成那种展示形式的文档,比如是本地的doc,或者markdown,或html都是可选的

本段以doc为例,运行main方法,观察结果:

java快速生成数据库文档详情

打开数据库文档,基本来说,我们只需简单调整下整体的格式即可使用了

java快速生成数据库文档详情

不妨再换一下,生成HTML格式的文件看看,修改下程序中的参数

java快速生成数据库文档详情

观察结果:

java快速生成数据库文档详情

通过这种方式,可以让大家在编写数据库文档时候节省不少体力吧

来源:https://blog.csdn.net/zhangcongyi420/article/details/115415617

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com