一、引入依赖

<!--数据库文档生成工具-->
<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一键生成数据库文档工具相关推荐

  1. IDEA常用高效开发工具——screw一键生成数据库文档

    screw [介绍:一键生成数据库文档,从此告别人工整理文档] a:数据库支持: MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB b:配 ...

  2. 数据库界的Swagger:一键生成数据库文档!你不了解一下?

    对于API的文档,我们有Swagger等工具来自动生成了.但有有一类文档还是常常困扰着我们,那就是数据库表结构的文档.相信很多同学都有过手写数据库表结构文档 的经历吧?常规操作就是一通无脑的 CV 大 ...

  3. 实用!一键生成数据库文档,堪称数据库界的Swagger

    最近部门订单业务调整,收拢其他业务线的下单入口,做个统一大订单平台.需要梳理各业务线的数据表,但每个业务线库都有近百张和订单相关的表,挨个表一个一个字段的弄脑瓜子嗡嗡的. 为了不重复 CV 操作,抱着 ...

  4. swagger连接mysql数据库_一键生成数据库文档,堪称数据库界的Swagger,有点厉害!...

    最近部门订单业务调整,收拢其他业务线的下单入口,做个统一大订单平台.需要梳理各业务线的数据表,但每个业务线库都有近百张和订单相关的表,挨个表一个一个字段的弄脑瓜子嗡嗡的. 为了不重复 CV 操作,抱着 ...

  5. 好用!一键生成数据库文档,这个开源的文档生成工具值得了解

    Gitee项目地址,可以直接去开源项目查看(推荐) https://gitee.com/leshalv/screw 简介 在企业级开发中.我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家 ...

  6. 超给力,抛弃手动维护,一键生成数据库文档、支持多种格式!

    点击关注公众号,实用技术文章及时了解 简介 在企业级开发中.我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家企业,关于数据库表结构文档状态:要么没有.要么有.但都是手写.后期运维开发,需 ...

  7. 实用,一键生成数据库文档

    screw 项目: 一.数据库支持 MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB 二.配置 pom文件 引入screw核心包,Hika ...

  8. 利用java代码一键生成数据库文档

    1 screw(螺丝钉)介绍 1.2 特点 简洁.轻量.设计良好 多数据库支持 多种格式文档 灵活扩展 支持自定义模板 1.2 文档生成支持 html word markdown 1.3 文档截图 1 ...

  9. 一键自动生成数据库文档,炫!(告别CV大法)

    数据库表结构文档生成器 前言 一.引入pom.xml依赖 二.创建Java类 三.使用 Maven 插件的方式 总结 前言 在日常开发中,当项目上线之后,甲方必定会让你提供一堆的验收文档,其中就包括了 ...

  10. 用java写ods系统_基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(TableGo v7.0.0版)...

    TableGo是基于数据库的代码自动生成工具,低代码编程技术的实现,可以零代码自动生成SpringBoot项目工程.生成JavaBean.生成前后端分离的CRUD代码.生成MyBaits的Mapper ...

最新文章

  1. 百度高层巨震!陆奇卸任COO,王海峰晋升高级副总裁
  2. 人工智能-离散数学-消解原理
  3. MongoDB聚合运算之group和aggregate聚集框架简单聚合(10)
  4. [XSY] 分割(dfs树)
  5. 批量引号_RcoketMQ 批量发送和消息过滤
  6. nacos 持久化 mysql(windows/linux环境)
  7. pythonsocket自动化教程_Python 的 Socket 编程教程
  8. Java笔记-Spring Boot JDBC连接Oracle数据库
  9. 2021年即墨萃英中学高考成绩查询,2017即墨萃英中学青岛十九中录取分数线发布...
  10. Orcad Library Builder使用教程以及安装踩坑记录
  11. 使用脚本把360极速浏览器修改为极速模式
  12. 黑马程序员--安卓22期毕业19天就业50人平均薪资8261
  13. 互联网晚报 | 11/11 星期五 | 苹果默认不再接受隔空投送;扎克伯格就万人被裁视频致歉;波司登旗舰店被曝先提价再打折...
  14. QT之 QSQLite
  15. MATEBOOK E 2019 安装linux
  16. IDEA相同变量高亮显示
  17. Centos7 网卡做 bond 以及 team
  18. Java项目:JSP在线学生选课管理系统
  19. DataBase_数据库的行式存储与列式存储
  20. 百度网盘上传慢的解决方法

热门文章

  1. 【毕业设计】深度学习垃圾分类系统 - python 卷积神经网络
  2. idea切换Git分支时弹出Git Checkout problem
  3. 恢复计算机文件的软件,删除文件恢复大师软件
  4. 离散数学 之 序偶的关系(自反性,对称性,传递性)
  5. 谷歌将英文网站翻译成中文
  6. 案例:数据提取/数据获取/爬虫—工具篇—影刀
  7. SQL中NOW() 函数
  8. 部分国家人均GDP和生活满意度可视化
  9. mysql简历上怎么写_新手程序员简历应该怎么写?
  10. 【CCF CSP】201903-1小中大