hanqingsong vor 2 Jahren
Commit
af71f27f0d
3 geänderte Dateien mit 136 neuen und 0 gelöschten Zeilen
  1. 33 0
      .gitignore
  2. 41 0
      pom.xml
  3. 62 0
      src/main/java/com/chinaitop/generate/GenerateDatabaseDocument.java

+ 33 - 0
.gitignore

@@ -0,0 +1,33 @@
1
+HELP.md
2
+target/
3
+!.mvn/wrapper/maven-wrapper.jar
4
+!**/src/main/**/target/
5
+!**/src/test/**/target/
6
+
7
+### STS ###
8
+.apt_generated
9
+.classpath
10
+.factorypath
11
+.project
12
+.settings
13
+.springBeans
14
+.sts4-cache
15
+
16
+### IntelliJ IDEA ###
17
+.idea
18
+*.iws
19
+*.iml
20
+*.ipr
21
+
22
+### NetBeans ###
23
+/nbproject/private/
24
+/nbbuild/
25
+/dist/
26
+/nbdist/
27
+/.nb-gradle/
28
+build/
29
+!**/src/main/**/build/
30
+!**/src/test/**/build/
31
+
32
+### VS Code ###
33
+.vscode/

+ 41 - 0
pom.xml

@@ -0,0 +1,41 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4
+    <modelVersion>4.0.0</modelVersion>
5
+    <parent>
6
+        <groupId>org.springframework.boot</groupId>
7
+        <artifactId>spring-boot-starter-parent</artifactId>
8
+        <version>2.7.15</version>
9
+        <relativePath/> <!-- lookup parent from repository -->
10
+    </parent>
11
+    <groupId>com.chinaitop</groupId>
12
+    <artifactId>depot-database-document</artifactId>
13
+    <version>0.0.1-SNAPSHOT</version>
14
+    <name>depot-database-document</name>
15
+    <description>生成数据库文档</description>
16
+    <properties>
17
+        <skipTests>true</skipTests>
18
+        <java.version>1.8</java.version>
19
+        <spring-cloud.version>2021.0.8</spring-cloud.version>
20
+    </properties>
21
+    <dependencies>
22
+        <!-- Screw Core -->
23
+        <dependency>
24
+            <groupId>cn.smallbun.screw</groupId>
25
+            <artifactId>screw-core</artifactId>
26
+            <version>1.0.2</version>
27
+        </dependency>
28
+        <!-- HikariCP -->
29
+        <dependency>
30
+            <groupId>com.zaxxer</groupId>
31
+            <artifactId>HikariCP</artifactId>
32
+            <version>3.4.5</version>
33
+        </dependency>
34
+        <!-- Mysql Driver -->
35
+        <dependency>
36
+            <groupId>mysql</groupId>
37
+            <artifactId>mysql-connector-java</artifactId>
38
+            <version>8.0.20</version>
39
+        </dependency>
40
+    </dependencies>
41
+</project>

+ 62 - 0
src/main/java/com/chinaitop/generate/GenerateDatabaseDocument.java

@@ -0,0 +1,62 @@
1
+package com.chinaitop.generate;
2
+
3
+import cn.smallbun.screw.core.Configuration;
4
+import cn.smallbun.screw.core.engine.EngineConfig;
5
+import cn.smallbun.screw.core.engine.EngineFileType;
6
+import cn.smallbun.screw.core.engine.EngineTemplateType;
7
+import cn.smallbun.screw.core.execute.DocumentationExecute;
8
+import cn.smallbun.screw.core.process.ProcessConfig;
9
+import com.zaxxer.hikari.HikariConfig;
10
+import com.zaxxer.hikari.HikariDataSource;
11
+
12
+import javax.sql.DataSource;
13
+import java.util.Arrays;
14
+import java.util.List;
15
+
16
+public class GenerateDatabaseDocument {
17
+
18
+	public static void main(String[] args) {
19
+		// 数据源
20
+		HikariConfig hikariConfig = new HikariConfig();
21
+		hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
22
+		hikariConfig.setJdbcUrl("jdbc:mysql://101.36.160.140:10311/test?serverTimezone=UTC");
23
+		hikariConfig.setUsername("root");
24
+		hikariConfig.setPassword("admin@1234");
25
+		// 设置可以获取tables remarks信息
26
+		hikariConfig.addDataSourceProperty("useInformationSchema", "true");
27
+		hikariConfig.setMinimumIdle(2);
28
+		hikariConfig.setMaximumPoolSize(5);
29
+		DataSource dataSource = new HikariDataSource(hikariConfig);
30
+        //生成文件路径,到本项目下
31
+		String put = System.getProperty("user.dir") + "/depot-database-document/src/main/java";
32
+		// 1、生成文件配置
33
+		EngineConfig engineConfig = EngineConfig.builder()
34
+		// 生成文件路径
35
+				.fileOutputDir(put)
36
+				// 打开目录
37
+				.openOutputDir(false)
38
+				// 文件类型
39
+				.fileType(EngineFileType.WORD)
40
+				// 生成模板实现
41
+				.produceType(EngineTemplateType.freemarker).build();
42
+
43
+		// 忽略表名
44
+		List<String> ignoreTableName = Arrays.asList("test");
45
+		// 忽略表前缀
46
+		List<String> ignorePrefix = Arrays.asList("test_", "test");
47
+		// 忽略表后缀
48
+		List<String> ignoreSuffix = Arrays.asList("_test", "test");
49
+
50
+		// 2、配置想要忽略的表
51
+		ProcessConfig processConfig = ProcessConfig.builder().ignoreTableName(ignoreTableName)
52
+				.ignoreTablePrefix(ignorePrefix).ignoreTableSuffix(ignoreSuffix).build();
53
+
54
+		// 3、生成文档配置(包含以下自定义版本号、描述等配置连接)
55
+		Configuration config = Configuration.builder().version("1.0.0").description("数据库文档").dataSource(dataSource)
56
+				.engineConfig(engineConfig).produceConfig(processConfig).build();
57
+
58
+		// 4、执行生成
59
+		new DocumentationExecute(config).execute();
60
+	}
61
+
62
+}