From 915f667a56aea4f1eebe02ac8a7f313a6d3f13b4 Mon Sep 17 00:00:00 2001 From: aoshiguchen <1052045476@qq.com> Date: Mon, 5 Dec 2022 11:13:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/aop/compiler/AsgcCompiler.java | 1 + neutrino-proxy-server/pom.xml | 5 +++ .../proxy/server/base/rest/DBInitialize.java | 43 ++++++++++++++----- .../base/rest/config/RestConfiguration.java | 3 +- .../sql/{ => sqlite}/init-structure.sql | 0 .../sql/{ => sqlite}/job_info.data.sql | 0 .../sql/{ => sqlite}/license.data.sql | 0 .../sql/{ => sqlite}/port_mapping.data.sql | 0 .../sql/{ => sqlite}/port_pool.data.sql | 0 .../resources/sql/{ => sqlite}/user.data.sql | 0 10 files changed, 41 insertions(+), 11 deletions(-) rename neutrino-proxy-server/src/main/resources/sql/{ => sqlite}/init-structure.sql (100%) rename neutrino-proxy-server/src/main/resources/sql/{ => sqlite}/job_info.data.sql (100%) rename neutrino-proxy-server/src/main/resources/sql/{ => sqlite}/license.data.sql (100%) rename neutrino-proxy-server/src/main/resources/sql/{ => sqlite}/port_mapping.data.sql (100%) rename neutrino-proxy-server/src/main/resources/sql/{ => sqlite}/port_pool.data.sql (100%) rename neutrino-proxy-server/src/main/resources/sql/{ => sqlite}/user.data.sql (100%) diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/AsgcCompiler.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/AsgcCompiler.java index 1b040b2d..d44ef4b0 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/AsgcCompiler.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/AsgcCompiler.java @@ -171,6 +171,7 @@ public class AsgcCompiler { /** * 编译代码 + * @param pkg 包名 * @param className 类名 * @param sourceCode 源代码 */ diff --git a/neutrino-proxy-server/pom.xml b/neutrino-proxy-server/pom.xml index aef19b8f..00dc1132 100644 --- a/neutrino-proxy-server/pom.xml +++ b/neutrino-proxy-server/pom.xml @@ -30,6 +30,11 @@ druid 1.1.24 + + mysql + mysql-connector-java + 8.0.29 + diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/DBInitialize.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/DBInitialize.java index 1829a70c..90f56f4b 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/DBInitialize.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/DBInitialize.java @@ -27,7 +27,10 @@ import fun.asgc.neutrino.core.annotation.PreLoad; import fun.asgc.neutrino.core.db.template.JdbcTemplate; import fun.asgc.neutrino.core.util.*; import fun.asgc.neutrino.proxy.server.base.rest.config.DbConfig; +import fun.asgc.neutrino.proxy.server.constant.DbTypeEnum; import lombok.extern.slf4j.Slf4j; +import org.sqlite.SQLiteConfig; +import org.sqlite.SQLiteDataSource; import java.sql.DriverManager; import java.util.List; @@ -44,8 +47,15 @@ public class DBInitialize { private static DbConfig dbConfig; private static JdbcTemplate jdbcTemplate; + private static DbTypeEnum dbTypeEnum; + public static void init() throws Exception { dbConfig = ConfigUtil.getYmlConfig(DbConfig.class); + Assert.notNull(dbConfig.getType(), "neutrino.data.db.type不能为空!"); + dbTypeEnum = DbTypeEnum.of(dbConfig.getType()); + Assert.notNull(dbTypeEnum, "neutrino.data.db.type取值异常!"); + + log.info("{}数据库初始化...", dbConfig.getType()); jdbcTemplate = getJdbcTemplate(); initDBStructure(); initDBData(); @@ -55,7 +65,7 @@ public class DBInitialize { * 初始化数据库结构 */ private static void initDBStructure() throws Exception { - List lines = FileUtil.readContentAsStringList("classpath:/sql/init-structure.sql"); + List lines = FileUtil.readContentAsStringList(String.format("classpath:/sql/%s/init-structure.sql", dbConfig.getType())); if (CollectionUtil.isEmpty(lines)) { return; } @@ -87,7 +97,7 @@ public class DBInitialize { if (count > 0) { continue; } - List lines = FileUtil.readContentAsStringList(String.format("classpath:/sql/%s.data.sql", tableName)); + List lines = FileUtil.readContentAsStringList(String.format("classpath:/sql/%s/%s.data.sql", dbConfig.getType(), tableName)); if (CollectionUtil.isEmpty(lines)) { return; } @@ -117,14 +127,27 @@ public class DBInitialize { DBInitialize.class, () -> { Class.forName(dbConfig.getDriverClass()); - //建立一个数据库名data.db的连接,如果不存在就在当前目录下创建之 - DriverManager.getConnection(dbConfig.getUrl()); - // 创建数据源 - DruidDataSource dataSource = new DruidDataSource(); - dataSource.setUrl(dbConfig.getUrl()); - dataSource.setDriverClassName(dbConfig.getDriverClass()); - // 创建jdbcTemplate - jdbcTemplate = new JdbcTemplate(dataSource); + if (DbTypeEnum.SQLITE == dbTypeEnum) { + //建立一个数据库名data.db的连接,如果不存在就在当前目录下创建之 + DriverManager.getConnection(dbConfig.getUrl()); + // 创建数据源 + SQLiteDataSource dataSource = new SQLiteDataSource(); + dataSource.setUrl(dbConfig.getUrl()); + dataSource.setJournalMode(SQLiteConfig.JournalMode.WAL.getValue()); + // 创建jdbcTemplate + jdbcTemplate = new JdbcTemplate(dataSource); + } else if (DbTypeEnum.MYSQL == dbTypeEnum) { + DruidDataSource dataSource = new DruidDataSource(); + dataSource.setDriverClassName("com.mysql.jdbc.Driver"); + dataSource.setUrl(dbConfig.getUrl()); + dataSource.setInitialSize(5); + dataSource.setMinIdle(5); + dataSource.setMaxActive(20); + dataSource.setMaxWait(60000); + dataSource.setPoolPreparedStatements(true); + dataSource.setUsername(""); // TODO + dataSource.setPassword(""); + } }, () -> jdbcTemplate ); diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/config/RestConfiguration.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/config/RestConfiguration.java index 4ec79309..43f78232 100644 --- a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/config/RestConfiguration.java +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/config/RestConfiguration.java @@ -24,6 +24,7 @@ package fun.asgc.neutrino.proxy.server.base.rest.config; import fun.asgc.neutrino.core.annotation.*; import fun.asgc.neutrino.core.base.Ordered; import fun.asgc.neutrino.core.db.template.JdbcTemplate; +import org.sqlite.SQLiteConfig; import org.sqlite.SQLiteDataSource; import javax.sql.DataSource; @@ -43,7 +44,7 @@ public class RestConfiguration { public DataSource dataSource() { SQLiteDataSource dataSource = new SQLiteDataSource(); dataSource.setUrl(dbConfig.getUrl()); - dataSource.setJournalMode("WAL"); + dataSource.setJournalMode(SQLiteConfig.JournalMode.WAL.getValue()); return dataSource; } diff --git a/neutrino-proxy-server/src/main/resources/sql/init-structure.sql b/neutrino-proxy-server/src/main/resources/sql/sqlite/init-structure.sql similarity index 100% rename from neutrino-proxy-server/src/main/resources/sql/init-structure.sql rename to neutrino-proxy-server/src/main/resources/sql/sqlite/init-structure.sql diff --git a/neutrino-proxy-server/src/main/resources/sql/job_info.data.sql b/neutrino-proxy-server/src/main/resources/sql/sqlite/job_info.data.sql similarity index 100% rename from neutrino-proxy-server/src/main/resources/sql/job_info.data.sql rename to neutrino-proxy-server/src/main/resources/sql/sqlite/job_info.data.sql diff --git a/neutrino-proxy-server/src/main/resources/sql/license.data.sql b/neutrino-proxy-server/src/main/resources/sql/sqlite/license.data.sql similarity index 100% rename from neutrino-proxy-server/src/main/resources/sql/license.data.sql rename to neutrino-proxy-server/src/main/resources/sql/sqlite/license.data.sql diff --git a/neutrino-proxy-server/src/main/resources/sql/port_mapping.data.sql b/neutrino-proxy-server/src/main/resources/sql/sqlite/port_mapping.data.sql similarity index 100% rename from neutrino-proxy-server/src/main/resources/sql/port_mapping.data.sql rename to neutrino-proxy-server/src/main/resources/sql/sqlite/port_mapping.data.sql diff --git a/neutrino-proxy-server/src/main/resources/sql/port_pool.data.sql b/neutrino-proxy-server/src/main/resources/sql/sqlite/port_pool.data.sql similarity index 100% rename from neutrino-proxy-server/src/main/resources/sql/port_pool.data.sql rename to neutrino-proxy-server/src/main/resources/sql/sqlite/port_pool.data.sql diff --git a/neutrino-proxy-server/src/main/resources/sql/user.data.sql b/neutrino-proxy-server/src/main/resources/sql/sqlite/user.data.sql similarity index 100% rename from neutrino-proxy-server/src/main/resources/sql/user.data.sql rename to neutrino-proxy-server/src/main/resources/sql/sqlite/user.data.sql