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

一、 简介

        在开发过程中,我们经常因为各种原因需要写数据库文档。照开发人员的角度来说,一个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自动生成数据库文档已完成,节省出来的时间划水他不香吗?

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



原文始发于微信公众号(服务端技术精选):还在手写数据库文档吗?用上它,划水干活儿两不误!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/258571.html

(0)
服务端技术精选的头像服务端技术精选

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!