使用Screw(螺丝钉)快速导出数据库表结构文档

文章介绍了如何使用Screw工具快速导出数据库表结构文档,包括配置JDK和Maven环境,创建Maven项目,添加依赖,以及编写Screw类来设定数据源和生成配置。该工具支持多种数据库和文档格式,但其表头固定且不可在代码中修改,可能不适用于需要自定义表头的用户。
摘要由CSDN通过智能技术生成

使用Screw(螺丝钉)快速导出数据库表结构文档

官网地址:https://gitee.com/leshalv/screw/

网上有很多资料 感觉和官网没多大出入,对一个只需要写数据库结构文档的人来说会有些懵。
比如说我,我在忙别的项目,我领导突然给了一个数据库地址,和一个半成品文档,让我尽快帮忙补充完。

注意:Screw导出的文档表头是这个样子,代码里改不了,估计要在jar包里改。想要表头不一致的小伙伴慎用!
在这里插入图片描述

文档生成支持

html
word
markdown

数据库支持

MySQL
MariaDB
TIDB
Oracle
SqlServer
PostgreSQL
Cache DB(2016)

步骤:

1.配置jdk、maven环境。

	网上有详细步骤,百度一下。

2.创建一个maven项目。

	网上有详细步骤,百度一下。

3.所有代码如下

1)pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sun</groupId>
  <artifactId>Screw</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>Screw Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>          
    	<groupId>javax</groupId>     
    	<artifactId>javaee-api</artifactId>          
    	<version>7.0</version>      
    </dependency> 
    
    <!-- https://mvnrepository.com/artifact/cn.smallbun.screw/screw-core -->
	<dependency>
   		<groupId>cn.smallbun.screw</groupId>
    	<artifactId>screw-core</artifactId>
    	<version>1.0.5</version>
	</dependency>
	
	<!-- https://mvnrepository.com/artifact/com.zaxxer/HikariCP -->
	<dependency>
    	<groupId>com.zaxxer</groupId>
    	<artifactId>HikariCP</artifactId>
    	<version>3.4.1</version>
	</dependency>
	<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8 -->
<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>12.2.0.1</version>
</dependency>
  </dependencies>
  <build>
    <finalName>Screw</finalName>
  </build>
</project>

2)Screw类

package Tool;
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.util.ArrayList;

/**
 * @description: 数据库设计文档生成
 */
public class Screw {

    public static void main(String[] args) {
      runScrew();
    }
    public static void runScrew() {
        //数据源
    	HikariConfig hikariConfig = new HikariConfig();        
          hikariConfig.setDriverClassName("oracle.jdbc.driver.OracleDriver");
          hikariConfig.setJdbcUrl("jdbc:oracle:thin:@11.1.11.111:1521/oracle");
          hikariConfig.setUsername("oracle");
          hikariConfig.setPassword("oracle");
          //设置可以获取tables remarks信息
          hikariConfig.addDataSourceProperty("useInformationSchema", "true");
          hikariConfig.setMinimumIdle(2);
          hikariConfig.setMaximumPoolSize(5);
          DataSource dataSource = new HikariDataSource(hikariConfig);

        //生成配置
        EngineConfig engineConfig = EngineConfig.builder()
            //生成文件路径
            .fileOutputDir("d:/")
            //打开目录
            .openOutputDir(true)
            //文件类型
            .fileType(EngineFileType.WORD)
            //生成模板实现
            .produceType(EngineTemplateType.freemarker)
            //自定义文件名称
            .fileName("数据库设计文档").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()
            //指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置
            //根据名称指定表生成
//        		.designatedTableName(designatedTableName);
//            .designatedTableName(new ArrayList<>())
//            //根据表前缀生成
//            .designatedTablePrefix(new ArrayList<>())
//            //根据表后缀生成
//            .designatedTableSuffix(new ArrayList<>())
            //忽略表名
            .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();
    }

}

 

最后在Screw类页面,右键-Run as-Java Application 。出现的日志大概是这样,就成功了。

结束。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值