【java】一种自动生成数据库文档的方法
时间:2021-08-12
本文章向大家介绍【java】一种自动生成数据库文档的方法,主要包括【java】一种自动生成数据库文档的方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
背景:
常在项目交付时供他人参阅,我们常会出一版数据库文档,详细解释每个字段,如果一个个去手动地导,不仅太慢而且chun,最近在GitHub发现一款神器,screw,只需简单配置即可自动导出。
GitHub地址
一、数据库支持
MySQL
MariaDB
TIDB
Oracle
SqlServer
PostgreSQL
Cache DB
…
二、配置
1、pom文件
<!-- screw核心 --> <dependency> <groupId>cn.smallbun.screw</groupId> <artifactId>screw-core</artifactId> <version>1.0.3</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.30</version> </dependency> <!-- HikariCP --> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>3.4.5</version> </dependency>
2、代码
package com.jobnew.Manager.backstage.util;/** * @Author: wwwppp * @Date: 2020-8-31 16:31 */ 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.ArrayList; import java.util.Arrays; import java.util.List; /** * @Author: wwwppp * @Date: 2020-8-31 16:31 */ public class pojoGeneration { public static void main(String[] args) { //数据源 HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setDriverClassName("com.mysql.jdbc.Driver"); hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/pay_sf"); hikariConfig.setUsername("root"); hikariConfig.setPassword("root"); //设置可以获取tables remarks信息 hikariConfig.addDataSourceProperty("useInformationSchema", "true"); hikariConfig.setMinimumIdle(2); hikariConfig.setMaximumPoolSize(5); DataSource dataSource = new HikariDataSource(hikariConfig); EngineConfig engineConfig = EngineConfig.builder() //导出文件地址 .fileOutputDir("D:/") //是否打开文件夹 .openOutputDir(true) //文件类型:html、doc、mockdown .fileType(EngineFileType.HTML) //模板引擎 .produceType(EngineTemplateType.freemarker).build(); ProcessConfig processConfig = ProcessConfig.builder() //指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置 //根据名称指定表生成 .designatedTableName(new ArrayList<>()) //根据表前缀生成 .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(); } /** * 配置想要生成的表+ 配置想要忽略的表 * * @return 生成表配置 */ public static ProcessConfig getProcessConfig() { // 忽略表名 List<String> ignoreTableName = Arrays.asList("a", "test_group"); // 忽略表前缀,如忽略a开头的数据库表 List<String> ignorePrefix = Arrays.asList("a", "t"); // 忽略表后缀 List<String> ignoreSuffix = Arrays.asList("_test", "czb_"); return ProcessConfig.builder() //根据名称指定表生成 .designatedTableName(Arrays.asList("fire_user")) //根据表前缀生成 .designatedTablePrefix(new ArrayList<>()) //根据表后缀生成 .designatedTableSuffix(new ArrayList<>()) //忽略表名 .ignoreTableName(ignoreTableName) //忽略表前缀 .ignoreTablePrefix(ignorePrefix) //忽略表后缀 .ignoreTableSuffix(ignoreSuffix).build(); } }
是不是很方便呢!
————————————————
版权声明:本文为CSDN博主「吃鱼的小朋」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wphero/article/details/108325199
原文地址:https://www.cnblogs.com/fengwenzhee/p/15131818.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Android使用DrawerLayout实现双向侧滑菜单
- Android实现3D推拉门式滑动菜单源码解析
- Android编程处理窗口控件大小,形状,像素等UI元素工具类
- Android开发实现的Log统一管理类
- Android中可以作为Log开关的一些操作及安全性详解
- 实例详解Android Webview拦截ajax请求
- Android给布局、控件加阴影效果的示例代码
- XListView实现下拉刷新和上拉加载原理解析
- Android实现QQ侧滑(删除、置顶等)功能
- Android通过XListView实现上拉加载下拉刷新功能
- Android自定义View实现圆形切图效果
- Android仿iOS侧滑退出当前界面功能
- android仿支付宝密码输入框效果
- TextInputLayout输入框控件的悬浮标签
- android使用SwipeRefreshLayout实现ListView下拉刷新上拉加载