还在手写数据库文档吗?用上它,划水干活儿两不误

453 阅读2分钟

==============================================================================================================================

一、 简介

在开发过程中,我们经常因为各种原因需要写数据库文档。照开发人员的角度来说,一个Navicat就解决了,但是不懂技术的人员,你跟他说再多也是无用,还得老老实实写文档。但是敏捷开始期间,需求随时变动,表结构也是没有个固定的,改代码时间都不够,哪有时间慢慢去修改数据库文档呢?为了不留坑给自己和其他人,还能让大家开开心心的合作,可以使用screw工具来自动生成文档,数据库文档这块就可以彻底放心了。

二、screw特点

  • 简洁、轻量、设计良好。不需要不需要 powerdesigner 这种重量的建模工具。

  • 多数据库支持 。支持市面常见的数据库类型 MySQL、Oracle、SqlServer

  • 多种格式文档。支持 MD、HTML、WORD 格式

  • 灵活扩展。支持用户自定义模板和展示样式

三、支持的数据库类型

  • [√] MySQL

  • [√] mariaDB

  • [√] TIDB

  • [√] Oracle

  • [√] SqlServer

  • [√] PostgreSQL

  • [√] Cache DB

四、实例

1、添加依赖

这里以MySQL8数据库为例

 <dependency>    
     <groupId>cn.smallbun.screw</groupId>     
     <artifactId>screw-core</artifactId>  
     <version>1.0.3</version>  
 </dependency>  
 <!-- 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>

2、通过自定义代码配置文档生成

 @Test public void DataBaseDocumentAutomation() {    
 //数据源     
HikariConfig hikariConfig = new HikariConfig();     
hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");     
hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/test");     
hikariConfig.setUsername("点赞");     
hikariConfig.setPassword("转发");     
//设置可以获取tables remarks信息     
hikariConfig.addDataSourceProperty("useInformationSchema", "true");     
hikariConfig.setMinimumIdle(2);     
hikariConfig.setMaximumPoolSize(5);     
DataSource dataSource = new HikariDataSource(hikariConfig);     
//生成配置     
EngineConfig engineConfig = EngineConfig.builder()             
//生成文件路径            
 .fileOutputDir("/Users/guest")             
//打开目录             
.openOutputDir(true)             
//文件类型             
.fileType(EngineFileType.HTML)             
//生成模板实现             
.produceType(EngineTemplateType.freemarker).build(); ​     
//忽略表     
ArrayList<String> ignoreTableName = new ArrayList<>();     
ignoreTableName.add("user");     
ignoreTableName.add("group");     
//忽略表前缀     
ArrayList<String> ignorePrefix = new ArrayList<>();     
ignorePrefix.add("test_index");     
//忽略表后缀     
ArrayList<String> ignoreSuffix = new ArrayList<>();     
ignoreSuffix.add("_xxx");     
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();
 }

3、通过插件的形式生成文档

 <build>     
<plugins>         
    <plugin>             
        <groupId>cn.smallbun.screw</groupId>             
        <artifactId>screw-maven-plugin</artifactId>             
        <version>1.0.2</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>root</password>                 
<!--driver-->                
 <driverClassName>com.mysql.cj.jdbc.Driver</driverClassName>                 
<!--jdbc url-->                 
<jdbcUrl>jdbc:mysql://127.0.0.1:3306/test</jdbcUrl>                 
<!--生成文件类型-->                 
<fileType>HTML</fileType>                 
<!--文件输出目录-->                 
<fileOutputDir>/Users/guest</fileOutputDir>                 
<!--打开文件输出目录-->                 
<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自动生成数据库文档已完成,节省出来的时间划水他不香吗?

看到这里了,点个赞,转个发不行吗? 嘿嘿!

看到这里了,点个赞,转个发不行吗? 嘿嘿!
关注个人公众号“服务端技术精选”,还有更多好玩的等你哟!
原文链接:

mp.weixin.qq.com/s?__biz=Mzg…