数据库表结构文档生成工具 screw

数据库表结构文档生成工具 screw

LGPL
Java
跨平台
2020-06-22
平凡故事

在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,从业以来,待过几家企业,关于数据库表结构文档状态:要么没有、要么有、但都是手写、后期运维开发,需要手动进行维护到文档中,很是繁琐、如果忘记一次维护、就会给以后工作造成很多困扰、无形中制造了很多坑留给自己和后人,于是萌生了要自己写一个插件工具的想法,但由于自己前期在程序设计上没有很多造诣,且能力偏低,有想法并不能很好实现,随着工作阅历的增加,和知识的不断储备,终于在2020年的3月中旬开始进行编写,4月上旬完成初版,想完善差不多在开源,但由于工作太忙,业余时间不足,没有在进行完善,到了6月份由于工作原因、频繁设计和更改数据库、经常使用自己写的此插件、节省了很多时间,解决了很多问题 ,在仅有且不多的业余时间中、进行开源准备,于2020年6月22日,开源,欢迎大家使用、建议、并贡献。 

关于名字,想一个太难了,好在我这个聪明的小脑瓜灵感一现,怎么突出它的小,但重要呢?从小就学过雷锋的螺丝钉精神,摘自雷锋日记:虽然是细小的螺丝钉,是个细微的小齿轮,然而如果缺了它,那整个的机器就无法运转了,慢说是缺了它,即使是一枚小螺丝钉没拧紧,一个小齿轮略有破损,也要使机器的运转发生故障的...,感觉自己写的这个工具,很有这意味,虽然很小、但是开发中缺了它还不行,于是便起名为 screw(螺丝钉)。

特点

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

数据库支持

  • MySQL

  • MariaDB

  • TIDB

  • Oracle

  • SqlServer

  • PostgreSQL

  • Phoenix HBase

  • CacheDB

  • H2

  • DB2

  • HSQL

  • SQLLte

  • 瀚高

  • 达梦

  • 虚谷

  • 人大金仓

文档生成支持

  • html

  • word

  • markdown

使用方式

普通方式

  • 引入依赖

    <dependency>
        <groupId>cn.smallbun.screw</groupId>
        <artifactId>screw-core</artifactId>
        <version>${lastVersion}</version>
    </dependency>
    
  • 编写代码

/**
 * 文档生成
 */
void documentGeneration() {
   //数据源
   HikariConfig hikariConfig = new HikariConfig();
   hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
   hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/database");
   hikariConfig.setUsername("root");
   hikariConfig.setPassword("password");
   //设置可以获取tables remarks信息
   hikariConfig.addDataSourceProperty("useInformationSchema", "true");
   hikariConfig.setMinimumIdle(2);
   hikariConfig.setMaximumPoolSize(5);
   DataSource dataSource = new HikariDataSource(hikariConfig);
   //生成配置
   EngineConfig engineConfig = EngineConfig.builder()
         //生成文件路径
         .fileOutputDir(fileOutputDir)
         //打开目录
         .openOutputDir(true)
         //文件类型
         .fileType(EngineFileType.HTML)
         //生成模板实现
         .produceType(EngineTemplateType.freemarker).build();

   //忽略表
   ArrayList<String> ignoreTableName = new ArrayList<>();
   ignoreTableName.add("test_user");
   ignoreTableName.add("test_group");
   //忽略表前缀
   ArrayList<String> ignorePrefix = new ArrayList<>();
   ignorePrefix.add("test_");
   //忽略表后缀    
   ArrayList<String> 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();
}

Maven 插件

<build>
    <plugins>
        <plugin>
            <groupId>cn.smallbun.screw</groupId>
            <artifactId>screw-maven-plugin</artifactId>
            <version>${lastVersion}</version>
            <dependencies>
                <!-- HikariCP -->
                <dependency>
                    <groupId>com.zaxxer</groupId>
                    <artifactId>HikariCP</artifactId>
                    <version>3.4.5</version>
                </dependency>
                <!--mysql driver-->
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>8.0.20</version>
                </dependency>
            </dependencies>
            <configuration>
                <!--username-->
                <username>root</username>
                <!--password-->
                <password>password</password>
                <!--driver-->
                <driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>
                <!--jdbc url-->
                <jdbcUrl>jdbc:mysql://127.0.0.1:3306/xxxx</jdbcUrl>
                <!--生成文件类型-->
                <fileType>HTML</fileType>
                <!--打开文件输出目录-->
                <openOutputDir>false</openOutputDir>
                <!--生成模板-->
                <produceType>freemarker</produceType>
                <!--描述-->
                <description>数据库文档生成</description>
                <!--版本-->
                <version>${project.version}</version>
                <!--标题-->
                <title>数据库文档</title>
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

参与贡献

恳请的希望有兴趣的同学能够参与到screw建设中来,让我们共同完善它,让我们共同成长,帮助更多开发者,解决更多的问题。

项目版权

license

加载中

评论(15)

java念
java念
客户端软件吗?自己用javaFx瞎整了个,https://github.com/gaohuaiy/MyScrewFxUtils
落马洲
落马洲
最好是可以在线维护字段说明,不一定通过注释,可以内置一个sqlite存储
e
enjoyable1
为什么不做成客户端软件?
K
Kinsey94
不错不错,以后交接文档的时候省事多了
z
zhangleijie
不错
宗离
宗离
点赞
OpenIoT
OpenIoT
这件事情终于有人做了,很棒!坚持、加油!
robortly
robortly
Mongodb用户路过支持一个
ifzm
ifzm
想要 +1
贡梨
程勋员都感觉这么的宅呢 螺丝钉?

screw 1.0.5 发布啦,简洁好用的数据库表结构文档生成工具

Hi,亲爱的广大开发者朋友们,很高兴,screw 1.0.5 发布啦, 在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,繁琐麻烦且容易出错,不过有了 screw,你只需要在项目中进行集成...

08/18 09:56

screw 1.0.4 发布啦,简洁好用的数据库表结构文档生成工具

Hi,亲爱的广大开发者朋友们,很高兴,screw 1.0.4 发布啦, 在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,繁琐麻烦且容易出错,不过有了screw,你只需要在项目中进行集成,...

08/04 09:22

screw 1.0.3 发布啦,简洁好用的数据库表结构文档生成工具

Hi,亲爱的广大开发者朋友们,很高兴,screw 1.0.3 发布啦, 在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,繁琐麻烦且容易出错,不过有了screw,你只需要在项目中进行集成,...

07/10 10:50

screw 1.0.2 发布啦,简洁好用的数据库表结构文档生成工具

Hi,亲爱的广大开发者朋友们,很高兴,screw 1.0.2 发布啦, 在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,繁琐麻烦且容易出错,不过有了screw,你只需要在项目中进行集成,...

07/07 07:17

screw 1.0.1 发布啦,简洁好用的数据库表结构文档生成工具

Hi,亲爱的广大开发者朋友们,很高兴,screw 1.0.1 发布啦, 在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,繁琐麻烦且容易出错,不过有了screw,你只需要在项目中进行集成,...

06/27 21:59

screw 1.0.0 正式发布啦,简洁好用的数据库表结构文档生成工具

Hi,亲爱的广大开发者朋友们,很高兴,screw 1.0.0 正式发布啦, 在企业级开发中、我们经常会有编写数据库表结构文档的时间付出,繁琐麻烦且容易出错,不过有了screw,你只需要在项目中进行集...

06/22 10:43

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

screw

Screw The screw is a tool to fasten the object's mechanical parts step by step by using the physical and mathematical principles of the oblique circular rotation and friction fo...

10/20 14:35
0
0
php screw加密

Download http://sourceforge.net/projects/php-screw/ Installation(参照压缩包内README.en) (1) Unpack php\_screw-1.5.tgz. (2) Customize encryption / decryption vi my\_screw.h c...

2016/02/18 16:21
88
1
php_screw安装,使用

安装步骤: 1. 下载源码: wget http://nchc.dl.sourceforge.net/project/php-screw/php-screw/1.5/php_screw-1.5.tar.gz 2. 解压缩: tar zxvf php_screw-1.5.tar.gz 3. 通过README.en文件可...

2018/12/10 18:32
27
0
php screw加密与破解

一、破解工具之php-screw-brute 1、项目地址   https://github.com/securifybv/php-screw-brute 2、项目介绍   此脚本可以恢复/爆破php screw使用的密钥。PHP Screw使用压缩文件的长度来...

2019/07/30 10:25
19
0
twin screw extruders machine

In contempo years, mid- and small-size biotechnology companies are developing at a accelerated pace. There are added than 1,000 such entities civic at present, and added than 30...

2012/07/05 11:30
14
0
top single screw extruder manufacturers

One of the apartment segments serves as a degassing apartment articulation for degassing the artificial actual and it is affiliated to a degassing chamber.plastic machinery manu...

2012/07/16 11:34
22
0
screw-plus实现php代码安全

1.下载screw-plus安装包 git clone https://git.oschina.net/splot/php-screw-plus.git mv php-screw-plus /usr/local/src/ 2.php添加php-screw-plus模块,在编译之前可以在php_screw_plus....

2019/03/31 15:53
12
0
php代码安全之php screw_plus

https://github.com/del-xiong/screw-plus http://git.oschina.net/splot/php-screw-plus screw plus是一个开源的php扩展,作用是对php文件进行加密,网络上提供php加密的服务很多,但大多都...

2019/10/08 13:34
260
0
co-rotating twin screw extruder manufacturer

Nowadays the capital operation of WPC is accompanying spiral extruder, because it delivers abstracts relying on the assumption of absolute displacement and accepting no burden a...

2012/07/16 11:30
29
0
用php_screw加密php源代码

http://www.jb51.net/article/38816.htm

2014/06/02 14:19
130
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部