From 0b1e9e70818f0e3eb32dd6c029d42d93236ecdc6 Mon Sep 17 00:00:00 2001
From: zrj <646384940@qq.com>
Date: Wed, 03 Jul 2024 12:07:01 +0800
Subject: [PATCH] 数据同步新增连接池配置
---
src/main/java/org/springblade/binlog/client/MysqlClient.java | 83 +++++++++++++++++------------------------
1 files changed, 35 insertions(+), 48 deletions(-)
diff --git a/src/main/java/org/springblade/binlog/client/MysqlClient.java b/src/main/java/org/springblade/binlog/client/MysqlClient.java
index 8d8f720..88fff9f 100644
--- a/src/main/java/org/springblade/binlog/client/MysqlClient.java
+++ b/src/main/java/org/springblade/binlog/client/MysqlClient.java
@@ -1,15 +1,13 @@
package org.springblade.binlog.client;
+import com.zaxxer.hikari.HikariConfig;
+import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j;
-import org.springblade.binlog.constant.BinLogConstants;
+import org.springblade.binlog.constant.FromConstants;
import org.springframework.stereotype.Component;
-import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
+import java.sql.*;
+import java.util.Properties;
/**
* mysql 客户端连接
@@ -18,20 +16,26 @@
@Component
public class MysqlClient {
- //声明对象
- private static MysqlClient mysqlClient;
+ private static String url = "jdbc:mysql://127.0.0.1:3308/srjw?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true";
+ private static String username = "root";
+ private static String password = "root";
+ private static final HikariDataSource ds = createDataSource();
- @Resource
- private BinLogConstants binLogConstants;
+ public static HikariDataSource createDataSource() {
+ Properties properties = System.getProperties();
+// String profile = properties.getProperty("blade.env");
+ String profile = properties.getProperty("spring.profiles.active");
+ HikariConfig config = new HikariConfig();
+ config.setJdbcUrl(FromConstants.setUrl(profile));
+ config.setUsername(FromConstants.setUsername(profile));
+ config.setPassword(FromConstants.setPassword(profile));
+ config.addDataSourceProperty("cachePrepStmts", "true");
+ config.addDataSourceProperty("prepStmtCacheSize", "250");
+ config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
- /**
- * 初始化
- */
- @PostConstruct
- public void init(){
- mysqlClient = this;
- mysqlClient.binLogConstants = this.binLogConstants;
+ HikariDataSource ds = new HikariDataSource(config);
+ return ds;
}
/**
@@ -39,39 +43,22 @@
* @param sql
*/
public static void sqlConnect(String sql,Integer type){
- String driver = "com.mysql.cj.jdbc.Driver";
- String url = mysqlClient.binLogConstants.getFromUrl();
- String user = mysqlClient.binLogConstants.getFromUsername();
- String password = mysqlClient.binLogConstants.getFromPassword();
- Connection conn = null;
- PreparedStatement ps = null;
+ Connection connection = null;
+ PreparedStatement preparedStatement = null;
+ ResultSet resultSet = null;
try {
- Class.forName ( driver );
- conn = (Connection) DriverManager.getConnection ( url, user, password );
- if (!conn.isClosed ()) {
- log.info( "数据库连接成功!" );
- ps = conn.prepareStatement ( sql );
- //判断是否为修改,删除
- if (type==1){
- //修改删除
- ps.executeUpdate();
- log.info( "数据已发送成功!" );
- }else {
- //新增
- ps.execute();
- log.info( "数据已发送成功!" );
- }
- }
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
+ connection = ds.getConnection();
+ preparedStatement = connection.prepareStatement(sql);
+ preparedStatement.executeUpdate();
} catch (SQLException e) {
- e.printStackTrace ();
- }finally {
+ e.printStackTrace();
+ } finally {
try {
- ps.close();
- conn.close();
- } catch (SQLException throwables) {
- throwables.printStackTrace();
+ if (resultSet != null) resultSet.close();
+ if (preparedStatement != null) preparedStatement.close();
+ if (connection != null) connection.close();
+ } catch (SQLException e) {
+ e.printStackTrace();
}
}
}
--
Gitblit v1.9.3