如何生成数据库设计文档

  • screw
    • 什么是screw
    • 特点
    • 支持生成的文档类型
    • 目前支持的数据库类型
    • 支持的模板类型
  • 如何使用?
  • 遇到的问题

screw

官网地址:

https://gitee.com/leshalv/screw/

什么是screw

screw是简洁好用的数据库表结构文档生成工具。

特点

  • 简洁、轻量、设计良好
  • 多数据库支持
  • 多种格式文档
  • 灵活扩展
  • 支持自定义模板

支持生成的文档类型

  • html
  • word
  • markdown

目前支持的数据库类型

MySQL
MariaDB
TIDB
Oracle
SqlServer
PostgreSQL
Cache DB(2016)

支持的模板类型

  • freemarker
  • velocity

如何使用?

  • 引入maven依赖
 <dependency><groupId>cn.smallbun.screw</groupId><artifactId>screw-core</artifactId><version>1.0.3</version>
</dependency>
  • 编写代码

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.security.MessageDigest;
import java.util.Arrays;
import java.util.List;
import java.util.Random;public class Test {public static void main(String[] args) {// 数据源HikariConfig hikariConfig = new HikariConfig();hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");hikariConfig.setJdbcUrl("jdbc:mysql://192.168.200.222:3306/bjs?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true");hikariConfig.setUsername("root");hikariConfig.setPassword("root");// 设置可以获取tables remarks信息hikariConfig.addDataSourceProperty("useInformationSchema", "true");hikariConfig.setMinimumIdle(2);hikariConfig.setMaximumPoolSize(5);DataSource dataSource = new HikariDataSource(hikariConfig);// 1、生成文件配置EngineConfig engineConfig = EngineConfig.builder()// 生成文件路径.fileOutputDir("E:\\北交所")// 打开目录.openOutputDir(false)// 文件类型.fileType(EngineFileType.HTML)// 生成模板实现.produceType(EngineTemplateType.freemarker).build();// 忽略表名List<String> ignoreTableName = Arrays.asList("test");// 忽略表前缀List<String> ignorePrefix = Arrays.asList("test_", "test");// 忽略表后缀List<String> ignoreSuffix = Arrays.asList("_test", "test");// 2、配置想要忽略的表ProcessConfig processConfig = ProcessConfig.builder().ignoreTableName(ignoreTableName).ignoreTablePrefix(ignorePrefix).ignoreTableSuffix(ignoreSuffix).build();// 3、生成文档配置(包含以下自定义版本号、描述等配置连接)Configuration config = Configuration.builder().version("1.0.0").description("数据库文档").dataSource(dataSource).engineConfig(engineConfig).produceConfig(processConfig).build();// 4、执行生成new DocumentationExecute(config).execute();}}
  • 生成文档(我生成的是Html,以下是截图)

遇到的问题

运行测试类,报下图的错误,错误信息是Jar包冲突,依赖screw后与项目原来依赖的jar包冲突了。

解决办法:排除冲突的依赖

     <!-- screw核心 --><dependency><groupId>cn.smallbun.screw</groupId><artifactId>screw-core</artifactId><version>1.0.3</version><exclusions><exclusion><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId></exclusion></exclusions></dependency>

如何生成数据库设计文档相关推荐

  1. 生成数据库设计文档小技巧

    目录 生成数据库设计文档小技巧 利用数据库自身功能生成excel和word文档 使用的软件环境说明 查询所有表名 查询所有列名 设置excel 生成数据库设计文档小技巧 利用数据库自身功能生成exce ...

  2. 自动生成数据库设计文档利器

    目录 1.前言介绍 2.功能说明 3.编码实战 1.新建项目 2.导入依赖 3.启动类 4.工具类 5.测试 1.前言介绍 今天给大家介绍一款非常还用的小工具,专门用到生成数据库设计文档的,非常简单. ...

  3. Java自动生成数据库设计文档(Word)

    一.前言 在日常的开发工作中,偶尔会遇到项目收尾需要提供数据库设计文档的情况.对这个文档的编写目前应该已经基本没有问题了,如果你还不知道如何编写该文档,可以参考如下文章. https://blog.c ...

  4. mysql自动生成数据库设计文档

    mysql生成数据库设计文档 引入jar包 <!-- screw核心 --> <dependency><groupId>cn.smallbun.screw</ ...

  5. SpringBoot 生成数据库设计文档工具

    1.在项目的pom.xml里加上以上代码,配置想要生成的数据库的信息 <build><plugins><plugin><groupId>org.spri ...

  6. 用PDMReader工具生成数据库设计文档

    你是否在为写庞大的数据库设计文档发愁,帮你轻松搞定,前提是你需要有pdm文件! 第一步:下载并安装PDMReader(见我的资源里); 第二步:打开PDMReader,新建项目:test: 第三步:在 ...

  7. PowerDesigner生成数据库设计文档

    1.说明 使用PowerDesigner设计数据库表, 基于PowerDesigner设计数据库表, 生成数据库对应的表设计文档, PowerDesigner支持生成HTML.RTF和本地格式的文档, ...

  8. 通过表结构生成数据库设计文档

    技术实现:Screw+javaFX 作用:通过引入screw核心包来实现Java 数据库文档,一键生成支持的数据库列表:MySQL .MariaDB .TIDB. Oracle. SqlServer. ...

  9. Navicat 快速生成数据库设计文档

    SELECTCOLUMN_NAME 列名,COLUMN_TYPE 数据类型,DATA_TYPE 字段类型,CHARACTER_MAXIMUM_LENGTH 长度,IS_NULLABLE 是否为空,CO ...

最新文章

  1. 转载----Python的zip()函数
  2. 未转变者空投指令服务器,未转变者空投指令 | 手游网游页游攻略大全
  3. 把有限的精力放在最有意义的事上
  4. 百度知道回答的依赖注入
  5. scala 当前日期_如何在Scala中检查当前日期和时间?
  6. Ubuntu下安装Rabbitmq和golang环境
  7. java fork join demo_Fork/Join框架 demo
  8. 用java web实现聊天室_java web实现简单聊天室
  9. 微信小程序picker选择器(下拉框)以及传值问题
  10. CTF密码图鉴(持续更新)
  11. 火狐浏览器批量保存网页图片
  12. 如何使用CE来修改游戏并制作一个修改器
  13. 使用vi编辑器编辑一个C语言源程序hello.c,并使用编译工具GCC编译该源程序。
  14. 工作的工资是怎么算的
  15. BAT资深算法工程师「Deep Learning」读书系列分享(一) | 分享总结
  16. S3DIS数据集学习笔记
  17. h5 苹果IOS端 播放mp3 没声音
  18. 人体红外模块对比评测,是你的话怎么选
  19. pixel-wise,patch-wise,image-wise的含义
  20. C++使用winhttp以POST/GET方法实现报文转发与接收

热门文章

  1. python爬虫爬取东方财富网股票走势+一些信息
  2. 最短路——最短路计数(spfa)
  3. Android 给RecyclerView添加头部和尾部
  4. EEPROM, NAND FLASH, NOR FLASH
  5. java实现图片上传至本地
  6. ZPL命令打印出的一维码扫码枪不识别问题
  7. tar.gz00 xxx.tar.gz01 xxx.tar.gz02……解压
  8. 【应届生笔试资料分享二】中国农业银行相关介绍汇总
  9. “无法访问此网站”的一些原因
  10. 输入一个字符,判断输入的是控制字符、数字、大小写字母还是其他字符,并给出相应提示