package com.utils;
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.Arrays;
import java.util.List;
/**
* <p>
* <code>ScrewUtils</code>
* </p>
* Description:
*
* @date 2023/05/05 下午 02:32
*/
public class ScrewUtils {
public static void main(String[] args) {
// 数据源
HikariConfig hikariConfig = new HikariConfig();
// mysql
// hikariConfig.setDriverClassName("com.mysql.jdbc.Driver");
// hikariConfig.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/dbaname");
// oracle
hikariConfig.setDriverClassName("oracle.jdbc.driver.OracleDriver");
hikariConfig.setJdbcUrl("jdbc:oracle:thin:@//127.0.0.1:1521/dbaname");
hikariConfig.setUsername("xxx");
hikariConfig.setPassword("xxx");
// 设置可以获取tables remarks信息
hikariConfig.addDataSourceProperty("useInformationSchema", "true");
hikariConfig.setMinimumIdle(2);
hikariConfig.setMaximumPoolSize(5);
DataSource dataSource = new HikariDataSource(hikariConfig);
// 1、生成文件配置
EngineConfig engineConfig = EngineConfig.builder()
// 生成文件路径
// .fileOutputDir("/Users/xxx/uploadjar")// windows需要写盘符,我的是mac就省略了
.fileOutputDir("D:\\")// windows
// 打开目录
.openOutputDir(false)
// 文件类型
.fileType(EngineFileType.MD)
// 生成模板实现
.produceType(EngineTemplateType.freemarker)
.build();
// 忽略表名
List<String> ignoreTableName = Arrays.asList("test");
// 忽略表前缀
List<String> ignorePrefix = Arrays.asList("test_", "TEST", "XXL");
// 忽略表后缀
List<String> ignoreSuffix = Arrays.asList("_test", "test");
// 2、配置想要忽略的表
ProcessConfig processConfig = ProcessConfig.builder()
.ignoreTableName(ignoreTableName)
.ignoreTablePrefix(ignorePrefix)
.ignoreTableSuffix(ignoreSuffix)
.build();
// 我这里就不配置了
// ProcessConfig processConfig = ProcessConfig.builder().build();
// 3、生成文档配置(包含以下自定义版本号、描述等配置连接)
Configuration config = Configuration.builder()
.version("1.0.0")
.description("数据库文档")
.dataSource(dataSource)
.engineConfig(engineConfig)
.produceConfig(processConfig)
.build();
// 4、执行生成
new DocumentationExecute(config).execute();
}
}
<!-- mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<!-- oracle驱动-->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.5</version>
</dependency>
<!-- screw核心 -->
<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>1.0.3</version>
</dependency>