pom文件
<dependency>
<groupId>cn.smallbun.screw</groupId>
<artifactId>screw-core</artifactId>
<version>1.0.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
文档生成类
package com.xiaobu.screw;
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.Collections;
public class MysqlScrewMain {
private static final String JDBC_URL = "jdbc:mysql://127.0.0.1:3306/demo-68-authorization-server-sso?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC";
private static final String DB_USERNAME = "root";
private static final String DB_PASSWORD = "root";
private static final String FILE_OUTPUT_DIR = "/screw_test_mysql";
private static final EngineFileType FILE_OUTPUT_TYPE = EngineFileType.HTML;
private static final String DOC_FILE_NAME = "数据库文档";
private static final String DOC_VERSION = "1.0.0";
private static final String DOC_DESCRIPTION = "文档描述";
public static void main(String[] args) {
Configuration config = Configuration.builder()
.version(DOC_VERSION)
.description(DOC_DESCRIPTION)
.dataSource(buildDataSource())
.engineConfig(buildEngineConfig())
.produceConfig(buildProcessConfig())
.build();
new DocumentationExecute(config).execute();
System.out.println("文档生成完成,请查看输出目录:" + FILE_OUTPUT_DIR);
}
private static DataSource buildDataSource() {
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
hikariConfig.setJdbcUrl(JDBC_URL);
hikariConfig.setUsername(DB_USERNAME);
hikariConfig.setPassword(DB_PASSWORD);
hikariConfig.addDataSourceProperty("useInformationSchema", "true");
return new HikariDataSource(hikariConfig);
}
private static EngineConfig buildEngineConfig() {
return EngineConfig.builder()
.fileOutputDir(FILE_OUTPUT_DIR)
.openOutputDir(false)
.fileType(FILE_OUTPUT_TYPE)
.produceType(EngineTemplateType.freemarker)
.fileName(DOC_FILE_NAME)
.build();
}
private static ProcessConfig buildProcessConfig() {
return ProcessConfig.builder()
.designatedTableName(Collections.emptyList())
.designatedTablePrefix(Collections.emptyList())
.designatedTableSuffix(Collections.emptyList())
.ignoreTableName(Arrays.asList("test_user", "test_group"))
.ignoreTablePrefix(Collections.singletonList("test_"))
.ignoreTableSuffix(Collections.singletonList("_test"))
.build();
}
}