许鹏程
2024-05-28 d6f4e1c1c8de8a370c224ea4857aef5f35f4b98a
commit
已添加1个文件
已修改1个文件
28 ■■■■ 文件已修改
src/main/java/com/product/datasource/dao/ConnectionInterface.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/product/datasource/dao/impl/MysqlDaoImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/product/datasource/dao/ConnectionInterface.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package com.product.datasource.dao;
import java.sql.Connection;
import java.sql.SQLException;
public interface ConnectionInterface {
    Connection getConnection() throws SQLException;
}
src/main/java/com/product/datasource/dao/impl/MysqlDaoImpl.java
@@ -11,6 +11,7 @@
import com.product.datasource.config.DataBaseType;
import com.product.datasource.config.ErrorCode;
import com.product.datasource.connection.ConnectionManager;
import com.product.datasource.dao.ConnectionInterface;
import com.product.datasource.dao.Dao;
import com.product.datasource.entity.BatchResultEntity;
import com.product.datasource.entity.DataBaseEntity;
@@ -18,6 +19,7 @@
import com.product.datasource.utils.BatchUtil;
import org.apache.commons.lang3.StringUtils;
import javax.swing.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -30,18 +32,23 @@
 */
public class MysqlDaoImpl implements Dao {
    private DataBaseEntity dataBaseEntity;
    private Connection connection;
    private boolean outLog;
    private ConnectionInterface connectionInterface;
    public MysqlDaoImpl(DataBaseEntity dataBaseEntity) {
        if (!DataBaseType.MYSQL.equals(dataBaseEntity.getDataBaseType())) {
            throw new BaseException(ErrorCode.INIT_DAO_IMPL_TYPE_ERROR);
        }
        this.dataBaseEntity = dataBaseEntity;
        this.outLog = "dev".equals(Global.getSystemConfig("spring.profiles.active", "prod"));
        connectionInterface = () -> ConnectionManager.getConnection(dataBaseEntity);
    }
    public MysqlDaoImpl(ConnectionInterface connectionInterface) {
        this.connectionInterface = connectionInterface;
    }
    private void info(String message) {
@@ -66,7 +73,7 @@
        try {
            if (this.connection == null || this.connection.isClosed()) {
                //初始化连接
                this.connection = ConnectionManager.getConnection(dataBaseEntity);
                this.connection = this.connectionInterface.getConnection();
            }
            return this.connection;
        } catch (Exception e) {
@@ -362,7 +369,7 @@
        TimeInterval timer = DateUtil.timer();
        info("批量新增数据条数为:" + data.getRows());
        BatchResultEntity batchResultEntity = new BatchResultEntity(data.getRows());
//        Connection connection = ConnectionManager.getConnection(dataBaseEntity);
//        ConnectionInterface connection = ConnectionManager.getConnection(dataBaseEntity);
        try {
            StringBuilder insertSql = BatchUtil.getInsertSql(data.getMeta());
            info("SQL:" + insertSql);
@@ -388,6 +395,7 @@
                info("执行批量提交数据完成,共提交 " + data.getRows() + " æ¡,耗时:" + timer.intervalSecond() + " ç§’ ï¼");
                pst.clearBatch();
            } catch (Exception e) {
                SpringMVCContextHolder.getSystemLogger().error(e);
                throw e;
            } finally {
                connection.setAutoCommit(true);
@@ -436,7 +444,7 @@
        TimeInterval timer = DateUtil.timer();
        info("批量更新数据条数为:" + data.getRows());
        BatchResultEntity batchResultEntity = new BatchResultEntity(data.getRows());
//        Connection connection = ConnectionManager.getConnection(dataBaseEntity);
//        ConnectionInterface connection = ConnectionManager.getConnection(dataBaseEntity);
        try {
            StringBuilder updateSql = BatchUtil.getUpdateSql(data.getMeta(), updateFilter.getFilter());
            info("SQL: " + updateSql);