This commit is contained in:
2023-06-15 16:17:13 +08:00
parent a7ee9eadba
commit 076955a04f
20 changed files with 941 additions and 73 deletions

View File

@ -36,7 +36,7 @@ public enum DataBaseEnum {
* PostgreSQL
*/
POSTGRE_SQL("PostgreSQL",
"jdbc:postgresql://localhost:5432/{}?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true",
"jdbc:postgresql://{}:{}/mydb?currentSchema={}&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&allowMultiQueries=true",
"org.postgresql.Driver"),
/**
@ -50,17 +50,6 @@ public enum DataBaseEnum {
private final String url;
private final String driver;
public static DataBaseEnum find(String databaseProductName) {
if (StrUtil.isBlank(databaseProductName)) {
return null;
}
for (DataBaseEnum type : values()) {
if (type.getType().equals(databaseProductName)) {
return type;
}
}
return null;
}
public static String getDriver(String type) {
for (DataBaseEnum dataBaseEnum : values()) {

View File

@ -23,15 +23,16 @@ public class DatabaseUtil {
* @return 处理后的sql
*/
public static String handleFindInSet(Object var1, String var2) {
DataBaseEnum dataBaseType = DataBaseEnum.find(BaseContext.getDatabaseType());
String databaseType = BaseContext.getDatabaseType();
log.debug("租户ID: [{}], 数据源类型: {}", BaseContext.getTenantId(), databaseType);
String var = Convert.toStr(var1);
if (dataBaseType == DataBaseEnum.SQL_SERVER) {
if (DataBaseEnum.SQL_SERVER.getType().equals(databaseType)) {
// charindex(',100,' , ',0,100,101,') <> 0
return "charindex('," + var + ",' , ','+" + var2 + "+',') <> 0";
} else if (dataBaseType == DataBaseEnum.POSTGRE_SQL) {
} else if (DataBaseEnum.POSTGRE_SQL.getType().equals(databaseType)) {
// (select position(',100,' in ',0,100,101,')) <> 0
return "(select position('," + var + ",' in ','||" + var2 + "||',')) <> 0";
} else if (dataBaseType == DataBaseEnum.ORACLE) {
} else if (DataBaseEnum.ORACLE.getType().equals(databaseType)) {
// instr(',0,100,101,' , ',100,') <> 0
return "instr(','||" + var2 + "||',' , '," + var + ",') <> 0";
}