This commit is contained in:
2023-06-07 17:41:53 +08:00
parent 7f9c2a64c1
commit e91cd14f6f
38 changed files with 720 additions and 73 deletions

View File

@ -1,6 +1,7 @@
package com.qiaoba.common.base.enums;
import cn.hutool.core.util.StrUtil;
import com.qiaoba.common.base.exceptions.ServiceException;
import lombok.AllArgsConstructor;
import lombok.Getter;
@ -15,11 +16,13 @@ import lombok.Getter;
@AllArgsConstructor
public enum DataBaseEnum {
// ip/port/database
/**
* MySQL
*/
MY_SQL("MySQL",
"jdbc:mysql://localhost:3306/{}?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true",
"jdbc:mysql://{}:{}/{}?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowMultiQueries=true",
"com.mysql.cj.jdbc.Driver"),
/**
@ -59,4 +62,21 @@ public enum DataBaseEnum {
return null;
}
public static String getDriver(String type) {
for (DataBaseEnum dataBaseEnum : values()) {
if (dataBaseEnum.getType().equals(type)) {
return dataBaseEnum.driver;
}
}
throw new ServiceException(StrUtil.format("未找到数据库驱动, Type: {}", type));
}
public static String getUrl(String type, String ip, String port, String database) {
for (DataBaseEnum dataBaseEnum : values()) {
if (dataBaseEnum.getType().equals(type)) {
return StrUtil.format(dataBaseEnum.url, ip, port, database);
}
}
throw new ServiceException(StrUtil.format("未找到数据库Url, Type: {}", type));
}
}

View File

@ -1,5 +1,6 @@
package com.qiaoba.common.database.config;
import cn.hutool.core.collection.ListUtil;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
@ -10,6 +11,8 @@ import net.sf.jsqlparser.expression.StringValue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.List;
/**
* MybatisPlusConfig
*
@ -20,6 +23,11 @@ import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisPlusConfig {
/**
* 不需要拼接租户ID的表 租户表/租户数据源表
*/
private static final List<String> IGNORE_TABLES = ListUtil.toList("sys_tenant", "sys_tenant_datasource");
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
@ -29,10 +37,10 @@ public class MybatisPlusConfig {
return new StringValue(BaseContext.getTenantId());
}
// sys_tenant 不需要拼接租户ID
// 拼接租户ID
@Override
public boolean ignoreTable(String tableName) {
return "sys_tenant".equals(tableName);
return IGNORE_TABLES.contains(tableName);
}
}));
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());

View File

@ -23,7 +23,7 @@ public class PoolInfo {
private Integer min;
/**
* 最大空闲
* 最大连接
*/
private Integer max;
}

View File

@ -1,5 +1,9 @@
package com.qiaoba.common.database.utils;
import cn.hutool.core.util.StrUtil;
import com.qiaoba.common.base.exceptions.ServiceException;
import com.qiaoba.common.web.advice.ExceptionAdvice;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
@ -52,9 +56,9 @@ public class JdbcUtil {
Class.forName(driver);
//建立连接
conn = DriverManager.getConnection(url, username, password);
return conn;
} catch (Exception e) {
e.printStackTrace();
throw new ServiceException(StrUtil.format("数据源连接失败,错误: {}", e.getMessage()));
}
return conn;
}
}