From 3b0403052b9507076f2557f92b62d111efc27f2f Mon Sep 17 00:00:00 2001 From: aoshiguchen <1052045476@qq.com> Date: Fri, 10 Mar 2023 15:48:42 +0800 Subject: [PATCH] =?UTF-8?q?db=E7=9B=B8=E5=85=B3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/{rest => db}/DBInitialize.java | 2 +- .../proxy/server/base/db/DbConfiguration.java | 51 +++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) rename neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/{rest => db}/DBInitialize.java (99%) create mode 100644 neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DbConfiguration.java 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/db/DBInitialize.java similarity index 99% rename from neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/rest/DBInitialize.java rename to neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DBInitialize.java index 354456c6..984493b9 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/db/DBInitialize.java @@ -19,7 +19,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package fun.asgc.neutrino.proxy.server.base.rest; +package fun.asgc.neutrino.proxy.server.base.db; import com.google.common.collect.Lists; import fun.asgc.neutrino.core.db.template.JdbcTemplate; diff --git a/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DbConfiguration.java b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DbConfiguration.java new file mode 100644 index 00000000..616ae70c --- /dev/null +++ b/neutrino-proxy-server/src/main/java/fun/asgc/neutrino/proxy/server/base/db/DbConfiguration.java @@ -0,0 +1,51 @@ +package fun.asgc.neutrino.proxy.server.base.db; + +import com.alibaba.druid.pool.DruidDataSource; +import fun.asgc.neutrino.core.db.template.JdbcTemplate; +import fun.asgc.neutrino.proxy.server.base.rest.config.DbConfig; +import fun.asgc.neutrino.proxy.server.constant.DbTypeEnum; +import org.noear.solon.annotation.Bean; +import org.noear.solon.annotation.Configuration; +import org.noear.solon.annotation.Inject; +import org.sqlite.SQLiteConfig; +import org.sqlite.SQLiteDataSource; + +import javax.sql.DataSource; + +/** + * @author: aoshiguchen + * @date: 2023/3/10 + */ +@Configuration +public class DbConfiguration { + + @Bean(value = "dataSource", typed = true) + public DataSource dataSource(@Inject DbConfig dbConfig) { + DbTypeEnum dbTypeEnum = DbTypeEnum.of(dbConfig.getType()); + if (DbTypeEnum.SQLITE == dbTypeEnum) { + SQLiteDataSource dataSource = new SQLiteDataSource(); + dataSource.setUrl(dbConfig.getUrl()); + dataSource.setJournalMode(SQLiteConfig.JournalMode.WAL.getValue()); + return dataSource; + } else if (DbTypeEnum.MYSQL == dbTypeEnum) { + DruidDataSource dataSource = new DruidDataSource(); + dataSource.setDriverClassName(dbConfig.getDriverClass()); + dataSource.setUrl(dbConfig.getUrl()); + dataSource.setInitialSize(5); + dataSource.setMinIdle(5); + dataSource.setMaxActive(20); + dataSource.setMaxWait(60000); + dataSource.setPoolPreparedStatements(true); + dataSource.setUsername(dbConfig.getUsername()); + dataSource.setPassword(dbConfig.getPassword()); + return dataSource; + } + + return null; + } + + @Bean + public JdbcTemplate jdbcTemplate(@Inject("dataSource") DataSource dataSource) { + return new JdbcTemplate(dataSource); + } +}