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