From 86723d75a99f43b6b671f2dd9fa207b3d40ef5f1 Mon Sep 17 00:00:00 2001 From: YunaiV <> Date: Sat, 12 Dec 2020 22:04:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=20screw=20=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab-70-db-doc/lab-70-db-doc-screw-03/pom.xml | 40 +++++++++++ .../src/main/java/ScrewMain.java | 72 +++++++++++++++++++ lab-70-db-doc/pom.xml | 1 + 3 files changed, 113 insertions(+) create mode 100644 lab-70-db-doc/lab-70-db-doc-screw-03/pom.xml create mode 100644 lab-70-db-doc/lab-70-db-doc-screw-03/src/main/java/ScrewMain.java diff --git a/lab-70-db-doc/lab-70-db-doc-screw-03/pom.xml b/lab-70-db-doc/lab-70-db-doc-screw-03/pom.xml new file mode 100644 index 00000000..bdeee894 --- /dev/null +++ b/lab-70-db-doc/lab-70-db-doc-screw-03/pom.xml @@ -0,0 +1,40 @@ + + + + lab-70-db-doc + cn.iocoder.springboot.labs + 1.0-SNAPSHOT + + 4.0.0 + + lab-70-db-doc-screw-03 + + + + + cn.smallbun.screw + screw-core + 1.0.5 + + + cn.smallbun.screw + screw-extension + 1.0.5 + + + + + com.zaxxer + HikariCP + 3.4.5 + + + mysql + mysql-connector-java + 8.0.22 + + + + diff --git a/lab-70-db-doc/lab-70-db-doc-screw-03/src/main/java/ScrewMain.java b/lab-70-db-doc/lab-70-db-doc-screw-03/src/main/java/ScrewMain.java new file mode 100644 index 00000000..3a144630 --- /dev/null +++ b/lab-70-db-doc/lab-70-db-doc-screw-03/src/main/java/ScrewMain.java @@ -0,0 +1,72 @@ +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 cn.smallbun.screw.extension.pojo.PojoConfiguration; +import cn.smallbun.screw.extension.pojo.execute.PojoExecute; +import cn.smallbun.screw.extension.pojo.strategy.HumpNameStrategy; +import com.zaxxer.hikari.HikariConfig; +import com.zaxxer.hikari.HikariDataSource; + +import javax.sql.DataSource; +import java.util.Arrays; +import java.util.Collections; + +public class ScrewMain { + + private static final String DB_URL = "jdbc:mysql://400-infra.server.iocoder.cn:3306"; + private static final String DB_NAME = "mall_system"; + private static final String DB_USERNAME = "root"; + private static final String DB_PASSWORD = "3WLiVUBEwTbvAfsh"; + + private static final String FILE_OUTPUT_DIR = "/Users/yunai/screw_test"; + private static final String JAVA_CLASS_PACKAGE = "cn.iocoder.dataobject"; + + public static void main(String[] args) { + // 创建 screw 的配置 + PojoConfiguration config = PojoConfiguration.builder() + .path(FILE_OUTPUT_DIR) // 生成 POJO 相关的目录 + .packageName(JAVA_CLASS_PACKAGE) // 包名 + .nameStrategy(new HumpNameStrategy()) // 包名策略 + .useLombok(false) // 是否使用 Lombok + .dataSource(buildDataSource()) // 数据源 + .processConfig(buildProcessConfig()) // 处理配置 + .build(); + + // 执行 screw,生成 POJO 实体类 + new PojoExecute(config).execute(); + } + + /** + * 创建数据源 + */ + private static DataSource buildDataSource() { + // 创建 HikariConfig 配置类 + HikariConfig hikariConfig = new HikariConfig(); + hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver"); + hikariConfig.setJdbcUrl(DB_URL + "/" + DB_NAME); + hikariConfig.setUsername(DB_USERNAME); + hikariConfig.setPassword(DB_PASSWORD); + hikariConfig.addDataSourceProperty("useInformationSchema", "true"); // 设置可以获取 tables remarks 信息 + // 创建数据源 + return new HikariDataSource(hikariConfig); + } + + /** + * 创建 screw 的处理配置,一般可忽略 + * 指定生成逻辑、当存在指定表、指定表前缀、指定表后缀时,将生成指定表,其余表不生成、并跳过忽略表配置 + */ + 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(); + } + +} diff --git a/lab-70-db-doc/pom.xml b/lab-70-db-doc/pom.xml index 1efc92b6..55f7b46c 100644 --- a/lab-70-db-doc/pom.xml +++ b/lab-70-db-doc/pom.xml @@ -15,6 +15,7 @@ lab-70-db-doc-screw-01 lab-70-db-doc-screw-02 + lab-70-db-doc-screw-03