SpringBoot整合screw实现数据库文档自动生成的示例代码

网友投稿 385 2022-11-20


SpringBoot整合screw实现数据库文档自动生成的示例代码

有时候数据库文档需要整理,可是只能手动的复制粘贴,心中一万只草泥马奔腾而过。。。

screw

简洁好用的数据库表结构文档生成工具。

1. 创建项目

1.1 pom.xml

mysql

mysql-connector-java

runtime

org.freemarker

freemarker

2.3.30

cn.smallbun.screw

screw-core

1.0.5

1.2 新建工具类DocumentConfig.java

/**

* 文档生成

*/

static void documentGeneration() {

//数据源

HikariConfig hikariConfig = new HikariConfig();

hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");

hikariConfig.setJdbcUrl("jdbc:mysql://IP地址:3306/数据库名称");

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()

rYjOKAWy //生成文件路径

.fileOutputDir("D:\\")

//打开目录

.openOutputDir(true)

//文件类型

.fileType(EngineFileType.HTML)

//生成模板实现

.produceType(EngineTemplateType.freemarker)

//自定义文件名称

.fileName("test数据库").build();

//忽略表

ArrayList ignoreTableName = new ArrayList<>();

ignoreTableName.add("test_user");

ignoreTableName.add("test_group");

//忽略表前缀

ArrayList ignorePrefix = new ArrayList<>();

ignorePrefix.add("test_");

//忽略表后缀

ArrayList 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.0.0")

//描述

.description("数据库设计文档生成")

//数据源

.dataSource(dataSource)

//生成配置

.engineConfig(engineConfig)

//生成配置

.produceConfig(processConfig)

.build();

//执行生成

new DocumentationExecute(config).execute();

}

1.3 运行该方法

1.4 第二种生成配置

1.4.1 先在application.yml里面配置数据库连接信息:

spring:

datasource:

driver-class-name: com.mysql.cj.jdbc.Driver

url: jdbc:mysql://IP地址:3306/数据库名称

username: 用户名

password: 密码

xa:

properties:

useInformationSchema: true

1.4.2 新建test方法

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 org.junit.jupiter.api.Test;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.context.ApplicationContext;

import javax.sql.DataSource;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

@SpringBootTest

public class ScrewApplicationTests {

@Autowired

ApplicationContext applicationContext;

@Test

void contextLoads() {

DataSource dataSourceMysql = applicationContext.getBean(DataSource.class);

// 生成文件配置

EngineConfig engineConfig = http://EngineConfig.builder()

// 生成文件路径,自己mac本地的地址,这里需要自己更换下路径

.fileOutputDir("D:\\")

// 打开目录

.openOutputDir(false)

// 文件类型

.fileType(EngineFileType.HTML)

// 生成模板实现

.produceType(EngineTemplateType.freemarker).build();

// 生成文档配置(包含以下自定义版本号、描述等配置连接)

Configuration config = Configuration.builder()

.version("1.0.0")

.description("生成文档信息描述")

.dataSource(dataSourceMysql)

.engineConfig(engineConfig)

.produceConfig(getProcessConfig())

.build();

// 执行生成

new DocumentationExecute(config).execute();

}

/**

* 配置想要生成的表+ 配置想要忽略的表

* @return 生成表配置

*/

public static ProcessConfig getProcessConfig(){

// 忽略表名

List ignoreTableName = Arrays.asList("aa","test_group");

// 忽略表前缀,如忽略a开头的数据库表

List ignorePrefix = Arrays.asList("a","t");

// 忽略表后缀

List ignoreSuffix = Arrays.asList("_test","czb_");

return ProcessConfig.builder()

//根据名称指定表生成

.designatedTableName(new ArrayList<>())

//根据表前缀生成

.designatedTablePrefix(new ArrayList<>())

//根据表后缀生成

.designatedTableSuffix(new ArrayList<>())

//忽略表名

.ignoreTableName(ignoreTableName)

//忽略表前缀

.ignoreTablePrefix(ignorePrefix)

//忽略表后缀

.ignoreTableSuffix(ignoreSuffix).build();

}

}

1.4.3 运行test方法生成

github代码地址:

github.com/zhouzhaodong/springboot/tree/master/spring-boot-screw


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:获取验证码接口调用(抓取短信验证码接口)
下一篇:测试用例状态(测试用例详细到什么程度)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~