tianyunperfect 2 éve
szülő
commit
61b91770ec

+ 1 - 0
screw-generator/README.md

@@ -0,0 +1 @@
+数据库文档生成

+ 68 - 0
screw-generator/pom.xml

@@ -0,0 +1,68 @@
+<?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>com.alvin</groupId>
+    <artifactId>alvin-mybatis-plus-generator</artifactId>
+    <version>1.0</version>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>8.0.28</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.smallbun.screw</groupId>
+            <artifactId>screw-core</artifactId>
+            <version>1.0.5</version>
+        </dependency>
+        <dependency>
+            <groupId>com.zaxxer</groupId>
+            <artifactId>HikariCP</artifactId>
+            <version>4.0.3</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.79</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <!--使用Maven编译可执行的jar-->
+        <plugins>
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <configuration>
+                    <appendAssemblyId>false</appendAssemblyId>
+                    <descriptorRefs>
+                        <descriptorRef>jar-with-dependencies</descriptorRef>
+                    </descriptorRefs>
+                    <archive>
+                        <manifest>
+                            <mainClass>com.alvin.Generator</mainClass>
+                        </manifest>
+                    </archive>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>make-assembly</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 103 - 0
screw-generator/src/main/java/com/alvin/Generator.java

@@ -0,0 +1,103 @@
+package com.alvin;
+
+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;
+
+public class Generator {
+
+
+    public static void main(String[] args) {
+        //String db_url = args[0];
+        //String db_username = args[1];
+        //String db_password = args[2];
+        //String fileOutputDir = args[3];
+        //String fileName = args[4];
+        //
+        //generatorToFile(db_url, db_username, db_password, fileOutputDir, fileName);
+        generatorToFile("jdbc:mysql://mysql.aimpdev.svc.k5.bigtree.zone:3306/aimp_model", "test_user", "tmOxmmc+3jznq2cX",
+                "doc", "db");
+    }
+
+    /**
+     * 生成文件
+     *
+     * @param db_url      db url
+     * @param db_username 数据库用户名
+     * @param db_password 数据库密码
+     */
+    public static void generatorToFile(String db_url, String db_username, String db_password,
+                                       String fileOutputDir, String fileName) {
+
+        //数据源
+        HikariConfig hikariConfig = new HikariConfig();
+        hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
+        hikariConfig.setJdbcUrl(db_url);
+        hikariConfig.setUsername(db_username);
+        hikariConfig.setPassword(db_password);
+        //设置可以获取tables remarks信息
+        hikariConfig.addDataSourceProperty("useInformationSchema", "true");
+        hikariConfig.setMinimumIdle(2);
+        hikariConfig.setMaximumPoolSize(5);
+        DataSource dataSource = new HikariDataSource(hikariConfig);
+        //生成配置
+        EngineConfig engineConfig = EngineConfig.builder()
+                //生成文件路径
+                .fileOutputDir(fileOutputDir)
+                //打开目录
+                .openOutputDir(true)
+                //文件类型
+                .fileType(EngineFileType.HTML)
+                //生成模板实现
+                .produceType(EngineTemplateType.freemarker)
+                //自定义文件名称
+                .fileName(fileName).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.0.0")
+                //描述
+                .description("数据库设计文档生成")
+                //数据源
+                .dataSource(dataSource)
+                //生成配置
+                .engineConfig(engineConfig)
+                //生成配置
+                .produceConfig(processConfig)
+                .build();
+        //执行生成
+        new DocumentationExecute(config).execute();
+    }
+}