Screw一键生成数据库文档工具
一、引入依赖
<!--数据库文档生成工具-->
<dependency><groupId>cn.smallbun.screw</groupId><artifactId>screw-core</artifactId><version>1.0.3</version>
</dependency>
二、增加配置
这里提供两种常用配置:Mysql、Oracle
Mysql:
# 数据库连接
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/库名?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
spring.datasource.username=用户名
spring.datasource.password=密码
spring.datasource.xa.properties.usrInformationSchema=true# 生成数据库文档路径
filePath=C:\\Users\\Administrator\\Desktop
#文件描述
description=数据库文档
Oracle:
spring.datasource.url=jdbc:oracle:thin:@111.198.10.22:2521:newnhis
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.username=nhis2015
spring.datasource.password=nhis2015
spring.datasource.xa.properties.usrInformationSchema=true#生成数据库文档路径
filePath=C:\\Users\\Administrator\\Desktop
#文件描述
description=数据库文档
三、写代码啦
1.创建工具类
代码如下(示例):
package com.me.bathroom.utils;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.me.bathroom.SpringUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;import javax.sql.DataSource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;/*** 数据库文档生成工具类* Screw*/
@Component
public class DocumentGenerationUtil {ApplicationContext applicationContext = SpringUtils.getApplicationContext();public static void run(String description,String filePath){DocumentGenerationUtil documentGenerationUtil = new DocumentGenerationUtil();documentGenerationUtil.contextLoads(description,filePath);}private void contextLoads(String description,String filePath) {DataSource dataSourceMysql = applicationContext.getBean(DataSource.class);// 生成文件配置EngineConfig engineConfig = EngineConfig.builder()// 生成文件路径.fileOutputDir(filePath)// 打开目录.openOutputDir(false)// 文件类型(目前支持html、doc、MD格式,个人体验后还是html格式生成后看起来比较舒服,建议使用).fileType(EngineFileType.HTML)// 生成模板实现.produceType(EngineTemplateType.freemarker).build();// 生成文档配置(包含以下自定义版本号、描述等配置连接)Configuration config = Configuration.builder().version("1.0.0").description(description).dataSource(dataSourceMysql).engineConfig(engineConfig).produceConfig(getProcessConfig()).build();// 执行生成new DocumentationExecute(config).execute();}/*** 配置想要生成的表+ 配置想要忽略的表** @return 生成表配置*/public static ProcessConfig getProcessConfig() {// 忽略表名,需要忽略的表将表名放到list中即可List<String> ignoreTableName = Arrays.asList("aa", "test_group");// 忽略表前缀,如忽略a开头的数据库表List<String> ignorePrefix = Arrays.asList("a", "t");// 忽略表后缀List<String> ignoreSuffix = Arrays.asList("_test", "czb_");return ProcessConfig.builder()//根据名称指定表生成.designatedTableName(new ArrayList<>())//根据表前缀生成.designatedTablePrefix(new ArrayList<>())//根据表后缀生成.designatedTableSuffix(new ArrayList<>())//忽略表名.ignoreTableName(ignoreTableName)//忽略表前缀.ignoreTablePrefix(ignorePrefix)//忽略表后缀.ignoreTableSuffix(ignoreSuffix).build();}}
2.注入ApplicationContext
此类需要放在启动类同级别,代码如下:
package com.me.bathroom;import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;@Component
@Lazy(false)
public class SpringUtils implements ApplicationContextAware {private static ApplicationContext applicationContext;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext = applicationContext;}public static ApplicationContext getApplicationContext() {return applicationContext;}public static Object getBean(String name) {return getApplicationContext().getBean(name);}public static <T> T getBean(Class<T> clazz) {return getApplicationContext().getBean(clazz);}public static <T> T getBean(String name, Class<T> clazz) {return getApplicationContext().getBean(name, clazz);}
}
3.调用
package com.me.bathroom.controller;import com.me.bathroom.utils.DocumentGenerationUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** 生成当前数据库文档*/
@RequestMapping("/documentGeneration")
@RestController
public class DocumentGenerationController {@Value("${filePath}")private String filePath;@Value("${description}")private String description;@RequestMapping("/run")public String documentGeneration(){try{DocumentGenerationUtil.run(description,filePath);}catch (Exception e){e.printStackTrace();return "500";}return "200";}
}
直接调用接口就好啦,附上效果图:
Screw一键生成数据库文档工具相关推荐
- IDEA常用高效开发工具——screw一键生成数据库文档
screw [介绍:一键生成数据库文档,从此告别人工整理文档] a:数据库支持: MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB b:配 ...
- 数据库界的Swagger:一键生成数据库文档!你不了解一下?
对于API的文档,我们有Swagger等工具来自动生成了.但有有一类文档还是常常困扰着我们,那就是数据库表结构的文档.相信很多同学都有过手写数据库表结构文档 的经历吧?常规操作就是一通无脑的 CV 大 ...
- 实用!一键生成数据库文档,堪称数据库界的Swagger
最近部门订单业务调整,收拢其他业务线的下单入口,做个统一大订单平台.需要梳理各业务线的数据表,但每个业务线库都有近百张和订单相关的表,挨个表一个一个字段的弄脑瓜子嗡嗡的. 为了不重复 CV 操作,抱着 ...
- swagger连接mysql数据库_一键生成数据库文档,堪称数据库界的Swagger,有点厉害!...
最近部门订单业务调整,收拢其他业务线的下单入口,做个统一大订单平台.需要梳理各业务线的数据表,但每个业务线库都有近百张和订单相关的表,挨个表一个一个字段的弄脑瓜子嗡嗡的. 为了不重复 CV 操作,抱着 ...
- 好用!一键生成数据库文档,这个开源的文档生成工具值得了解
Gitee项目地址,可以直接去开源项目查看(推荐) https://gitee.com/leshalv/screw 简介 在企业级开发中.我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家 ...
- 超给力,抛弃手动维护,一键生成数据库文档、支持多种格式!
点击关注公众号,实用技术文章及时了解 简介 在企业级开发中.我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家企业,关于数据库表结构文档状态:要么没有.要么有.但都是手写.后期运维开发,需 ...
- 实用,一键生成数据库文档
screw 项目: 一.数据库支持 MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB 二.配置 pom文件 引入screw核心包,Hika ...
- 利用java代码一键生成数据库文档
1 screw(螺丝钉)介绍 1.2 特点 简洁.轻量.设计良好 多数据库支持 多种格式文档 灵活扩展 支持自定义模板 1.2 文档生成支持 html word markdown 1.3 文档截图 1 ...
- 一键自动生成数据库文档,炫!(告别CV大法)
数据库表结构文档生成器 前言 一.引入pom.xml依赖 二.创建Java类 三.使用 Maven 插件的方式 总结 前言 在日常开发中,当项目上线之后,甲方必定会让你提供一堆的验收文档,其中就包括了 ...
- 用java写ods系统_基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(TableGo v7.0.0版)...
TableGo是基于数据库的代码自动生成工具,低代码编程技术的实现,可以零代码自动生成SpringBoot项目工程.生成JavaBean.生成前后端分离的CRUD代码.生成MyBaits的Mapper ...
最新文章
- 百度高层巨震!陆奇卸任COO,王海峰晋升高级副总裁
- 人工智能-离散数学-消解原理
- MongoDB聚合运算之group和aggregate聚集框架简单聚合(10)
- [XSY] 分割(dfs树)
- 批量引号_RcoketMQ 批量发送和消息过滤
- nacos 持久化 mysql(windows/linux环境)
- pythonsocket自动化教程_Python 的 Socket 编程教程
- Java笔记-Spring Boot JDBC连接Oracle数据库
- 2021年即墨萃英中学高考成绩查询,2017即墨萃英中学青岛十九中录取分数线发布...
- Orcad Library Builder使用教程以及安装踩坑记录
- 使用脚本把360极速浏览器修改为极速模式
- 黑马程序员--安卓22期毕业19天就业50人平均薪资8261
- 互联网晚报 | 11/11 星期五 | 苹果默认不再接受隔空投送;扎克伯格就万人被裁视频致歉;波司登旗舰店被曝先提价再打折...
- QT之 QSQLite
- MATEBOOK E 2019 安装linux
- IDEA相同变量高亮显示
- Centos7 网卡做 bond 以及 team
- Java项目:JSP在线学生选课管理系统
- DataBase_数据库的行式存储与列式存储
- 百度网盘上传慢的解决方法