简介

在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家企业,关于数据库表结构文档状态:要么没有、要么有、但都是手写、后期运维开发,需要手动进行维护到文档中,很是繁琐、如果忘记一次维护、就会给以后工作造成很多困扰、无形中制造了很多坑留给自己和后人,于是需要一个插件工具screw[1]来维护。

screw 特点

  • 简洁、轻量、设计良好。不需要 powerdesigner 这种重量的建模工具
  • 多数据库支持 。支持市面常见的数据库类型 MySQL、Oracle、SqlServer
  • 多种格式文档。支持 MD、HTML、WORD 格式
  • 灵活扩展。支持用户自定义模板和展示样式

支持数据库类型

  • [✔️] MySQL
  • [✔️] MariaDB
  • [✔️] TIDB
  • [✔️] Oracle
  • [✔️] SqlServer
  • [✔️] PostgreSQL
  • [✔️] Cache DB

依赖

这里以 mysql8 数据库为例子

   <dependency>      <groupId>cn.smallbun.screwgroupId>      <artifactId>screw-coreartifactId>      <version>1.0.2version>  dependency>

  <dependency>      <groupId>com.zaxxergroupId>      <artifactId>HikariCPartifactId>      <version>3.4.5version>  dependency>

  <dependency>      <groupId>mysqlgroupId>      <artifactId>mysql-connector-javaartifactId>      <version>8.0.20version>  dependency>

1. 通过自定义代码配置文档生成

@Testpublic void shouldAnswerWithTrue() {    //数据源    HikariConfig hikariConfig = new HikariConfig();    hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");    hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/test");    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("/Users/lengleng")            //打开目录            .openOutputDir(true)            //文件类型            .fileType(EngineFileType.HTML)            //生成模板实现            .produceType(EngineTemplateType.freemarker).build();

    //忽略表    ArrayList ignoreTableName = new ArrayList<>();    ignoreTableName.add("test_user");    ignoreTableName.add("test_group");    //忽略表前缀    ArrayList ignorePrefix = new ArrayList<>();    ignorePrefix.add("test_");    //忽略表后缀    ArrayList ignoreSuffix = new ArrayList<>();    ignoreSuffix.add("_test");    ProcessConfig processConfig = ProcessConfig.builder()            //忽略表名            .ignoreTableName(ignoreTableName)            //忽略表前缀            .ignoreTablePrefix(ignorePrefix)            //忽略表后缀            .ignoreTableSuffix(ignoreSuffix).build();    //配置    Configuration config = Configuration.builder()            //版本            .version("1.0.0")            //描述            .description("数据库设计文档生成")            //数据源            .dataSource(dataSource)            //生成配置            .engineConfig(engineConfig)            //生成配置            .produceConfig(processConfig).build();    //执行生成    new DocumentationExecute(config).execute();}

2. 通过插件的形式生成文档

<build>    <plugins>        <plugin>            <groupId>cn.smallbun.screwgroupId>            <artifactId>screw-maven-pluginartifactId>            <version>1.0.2version>            <dependencies>

                <dependency>                    <groupId>com.zaxxergroupId>                    <artifactId>HikariCPartifactId>                    <version>3.4.5version>                dependency>

                <dependency>                    <groupId>mysqlgroupId>                    <artifactId>mysql-connector-javaartifactId>                    <version>8.0.20version>                dependency>            dependencies>            <configuration>

                <username>rootusername>

                <password>rootpassword>

                <driverClassName>com.mysql.cj.jdbc.DriverdriverClassName>

                <jdbcUrl>jdbc:mysql://127.0.0.1:3306/testjdbcUrl>

                <fileType>HTMLfileType>

                <fileOutputDir>/Users/lenglengfileOutputDir>

                <openOutputDir>falseopenOutputDir>

                <produceType>freemarkerproduceType>

                <description>数据库文档生成description>

                <version>${project.version}version>

                <title>数据库文档title>            configuration>            <executions>                <execution>                    <phase>compilephase>                    <goals>                        <goal>rungoal>                    goals>                execution>            executions>        plugin>    plugins>build>

Reference

[1]

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

postgre 生成数据库html文档_还在手动整理数据库文档?试试这个工具相关推荐

  1. postgre 生成数据库html文档_还在手动整理数据库文档?试试这个(螺丝钉)数据库文档生成工具...

    简介 在企业级开发中.我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家企业,关于数据库表结构文档状态:要么没有.要么有.但都是手写.后期运维开发,需要手动进行维护到文档中,很是繁琐.如果 ...

  2. mycat 分表子查询_还不懂MyCat?一文带你深入剖析,实现MySQL读写分离

    前言 系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Myca ...

  3. 现在好用的mysql客户端_还在用 Navicat 的,可以试试这几款免费且好用的 MySQL 客户端...

    没别的意思,今天就是为了给你推荐几款 MySQL 客户端,这几款客户端有一个共通点,那就是好用而且免费. "害,我看也就是平平无奇嘛!" 然后,转身赶紧下载体验一下. 哪个做开发的 ...

  4. navicat保存查询语句_还在用 Navicat 的,可以试试这几款免费且好用的 MySQL 客户端...

    没别的意思,今天就是为了给你推荐几款 MySQL 客户端,这几款客户端有一个共通点,那就是好用而且免费. "害,我看也就是平平无奇嘛!" 然后,转身赶紧下载体验一下. 哪个做开发的 ...

  5. java非主流火星文输入法_‎App Store 上的“火星文键盘-抽象话非主流输入法”...

    火星文键盘是一款的炫酷的火星文输入法.你不仅可以方便地输入火星文,并且还可以乱序文字,转换抽象话.未来也会更新聊天室等更多炫酷功能. 用户需要先使用其他输入法,或者系统内置的语音输入,输入想要转换的文 ...

  6. 阿里云查看mysql数据库密码是多少_阿里云服务器查看数据库密码是多少

    全网最新活动请看下方内容或右侧内容! --------------- 阿里云服务器查看数据库密码是多少,阿里云开源数据库. 在阿里云ecs云服务器上部署数据库后,在平常的操作中可能会遇到些问题,可以先 ...

  7. java 最长回文串_通俗易懂的最长回文串图解、说明及Java代码(中心扩散法和Manacher算法)...

    1. 回文串 作为程序员,回文串这个词已经见怪不怪了,就是一个字符串正着读和反着读是一样的,形式如abcdcba.bbaabb.这里涉及到奇回文和偶回文,奇回文指回文串的字符数是奇数,偶回文指回文串的 ...

  8. mysql数据库查询源码_超简单php mysql数据库查询类

    本文章为你免费提供一款漂亮的超简单php mysql数据库查询类哦 */ class Config{ private $host; //主机名称:一般是localhost private $root; ...

  9. pg数据库执行sql文件_在linux中Postgresql数据库如何执行脚本文件

    在linux中Postgresql数据库如何恢复数据库?执行sql脚本文件呢?具体步骤如下: 一.恢复数据库备份文件 1.将数据库备份文件xxx.backup用连接工具拷贝到/opt下,这个不固定,位 ...

最新文章

  1. MySQL 的 Binlog 日志处理工具(Canal/Maxwell/Databus/DTS)对比
  2. 深入探究 RocketMQ 事务机制的实现流程,为什么它能做到发送消息零丢失?
  3. CDE桌面环境中自动启动应用程序图形界面
  4. python中json模块博客园_python的json模块
  5. 服务器显示AL024是什么意思,中牟县家具木工机械维修台达驱动器al024故障分分钟修复...
  6. Lesson 31-32 Personal Habits
  7. 加油python_力扣——gas station (加油站) python实现
  8. 散文绘画集《心欢喜,灵快乐》研讨会在京举行
  9. sql中获取当前时间
  10. Froala Editor 4.0.11 Crack
  11. 计算机应届生月薪大多是多少?
  12. 请你预想一下量子计算机未来,直播,研究量子计算机的我被曝光了
  13. BBR: Congestion-based congestion control
  14. 第1130期AI100_机器学习日报(2017-10-22)
  15. OBS插件开发以及OBS插件的选择(obs直播插件)
  16. KT148A语音芯片SOP外挂功放芯片8002D的说明_V1
  17. PAKDD 2019 都有哪些重要看点?看这篇文章就够了!
  18. 领航未来,2022 世界人工智能大会「元宇宙的数字原生进化」论坛等你来!
  19. vue Element
  20. 基于深度学习的视觉应用,我们也可以开发哦!

热门文章

  1. 力扣35.搜索插入位置
  2. 微信小程序|开发实战篇之十-一些细节处理
  3. angularjs详解
  4. Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
  5. 阅读众包文献中一些值得mark 的小收获
  6. centos 7.2安装 lnmp一键安装
  7. JS 中通过对象关联实现『继承』
  8. 我为什么开始编程?(2015.7-2016.10阶段性总结)
  9. xml获取配置DataTable
  10. [emacs] 用 ido 或 anything 进行选择