目录
1、前言介绍
2、功能说明
3、编码实战
1、新建项目
2、导入依赖
3、启动类
4、工具类
5、测试
1、前言介绍
今天给大家介绍一款非常还用的小工具,专门用到生成数据库设计文档的,非常简单、快捷、方便
这款工具就是screw(螺丝钉)
官网地址:screw: 简洁好用的数据库表结构文档工具,支持MySQL/MariaDB/SqlServer/Oracle/PostgreSQL/TIDB/CacheDB 数据库。
2、功能说明
screw 这个工具能帮我们自动生成某个数据库所有表的详情文档,可以生成html、word、md格式,如下:
上面这只是html样式,还有word和md样式的我就不贴图了,大家可以自己试着生成看下就行了,下面我们就开始写代码
3、编码实战
1、新建项目
新建一个maven项目,名字叫做ScrewTools
2、导入依赖
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.wujiangbo</groupId><artifactId>ScrewTools</artifactId><version>1.0-SNAPSHOT</version><!--1、引入SpringBoot--><parent><groupId> org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.5.RELEASE</version></parent><dependencies><!--web依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--数据库驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--自动生成数据库文档:screw--><dependency><groupId>cn.smallbun.screw</groupId><artifactId>screw-core</artifactId><version>1.0.5</version></dependency><!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.1.1</version></dependency></dependencies></project>
3、启动类
package cn.wujiangbo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @description: 启动类* @auth: wujiangbo(QQ1134135987)* @date: 2022-08-01 18:34 星期一*/
@SpringBootApplication
public class App {public static void main(String[] args){SpringApplication.run(App.class, args);}
}
4、工具类
package cn.wujiangbo.tools;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: 生成数据库文档工具类* 详情参见官网:https://gitee.com/leshalv/screw* @auth: wujiangbo(QQ1134135987)* @date: 2022-08-01 18:36 星期一*/
public class CreateDbDoc {//生成数据库文档路径private static String FILE_OUTPUT_DIR = "E:\\test";public static void main(String[] args) {documentGeneration();}public static void documentGeneration() {//数据源HikariConfig hikariConfig = new HikariConfig();hikariConfig.setDriverClassName("com.mysql.jdbc.Driver");hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/test");//指定数据库hikariConfig.setUsername("root");//数据库账号hikariConfig.setPassword("123456");//数据库密码//设置可以获取tables remarks信息hikariConfig.addDataSourceProperty("useInformationSchema", "true");hikariConfig.setMinimumIdle(2);hikariConfig.setMaximumPoolSize(5);DataSource dataSource = new HikariDataSource(hikariConfig);//生成配置EngineConfig engineConfig = EngineConfig.builder()//生成文件路径.fileOutputDir(FILE_OUTPUT_DIR)//生成完成后是否打开目录.openOutputDir(true)//指定生成数据库文档的文件类型.fileType(EngineFileType.HTML)//html格式//.fileType(EngineFileType.WORD)//word格式//.fileType(EngineFileType.MD)//md格式//生成模板实现.produceType(EngineTemplateType.freemarker)//自定义文件名称.fileName("Test 数据库设计文档").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(new ArrayList<>())//根据表前缀生成.designatedTablePrefix(new ArrayList<>())//根据表后缀生成.designatedTableSuffix(new ArrayList<>())//忽略表名.ignoreTableName(ignoreTableName)//忽略表前缀.ignoreTablePrefix(ignorePrefix)//忽略表后缀.ignoreTableSuffix(ignoreSuffix).build();//配置Configuration config = Configuration.builder()//数据库文档的版本.version("1.1.1")//文档标题.title("xxxxx系统数据库设计文档")//机构信息.organization("Test")//文档描述.description("Test 数据库设计文档")//数据源.dataSource(dataSource)//生成配置.engineConfig(engineConfig)//生成配置.produceConfig(processConfig).build();//执行生成new DocumentationExecute(config).execute();System.out.println("**********************数据库文档生成完成**********************");}
}
只需要改一下里面连接的数据库参数即可,就可以任便的生成数据库设计文档了
是不是很方便呢,哈哈
5、测试
直接运行main方法就可以了,然后就会在指定目录中,生成数据库设计文档了,就是这么简单,赶紧用起来吧
本文源码地址:https://gitee.com/colinWu_java/ScrewTools.git
好,今天的分享就到这里了,如果本文对你有点点帮助的话,别忘了关注点赞哦