...
 
Commits (2)
    https://gitcode.net/O2OA/o2oa/-/commit/7d2a8f25eab31fe06d67562c0d911bc10b3e319c 修改默认配置可以设置数据库方言以及jdbc驱动类. 2024-04-29T09:29:29+08:00 o2null zhourui@o2oa.net https://gitcode.net/O2OA/o2oa/-/commit/37a3bff6351f57c7a4c472b651edc7c0d02c50da Merge branch 'feature/pgSupport' into 'develop' 2024-04-30T01:48:32+00:00 胡起 hq_1980@hotmail.com 修改默认配置可以设置数据库方言以及jdbc驱动类. See merge request o2oa/o2oa!2634
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
"testConnectionOnCheckout": false, "testConnectionOnCheckout": false,
"maxIdleTime": 300.0, "maxIdleTime": 300.0,
"autoCommit": false, "autoCommit": false,
"schema": "X", "schema": "",
"logStatEnable": false, "logStatEnable": false,
"logStatInterval": 180.0, "logStatInterval": 180.0,
"slowSqlEnable": true, "slowSqlEnable": true,
......
package com.x.base.core.container.factory; package com.x.base.core.container.factory;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.sql.Driver;
import java.sql.DriverManager;
import java.util.Enumeration;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
......
...@@ -121,66 +121,67 @@ public class SlicePropertiesBuilder { ...@@ -121,66 +121,67 @@ public class SlicePropertiesBuilder {
throw new Exception("can not get dictionary of url: " + url + "."); throw new Exception("can not get dictionary of url: " + url + ".");
} }
public static boolean hasSchemaOfUrl(String url) throws Exception { // public static boolean hasSchemaOfUrl(String url) throws Exception {
if (StringUtils.containsIgnoreCase(url, "jdbc:db2:")) { // if (StringUtils.containsIgnoreCase(url, "jdbc:db2:")) {
return true; // return true;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:oracle:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:oracle:")) {
return true; // return true;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:mysql:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:mysql:")) {
return false; // return false;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:postgresql:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:postgresql:")) {
return true; // return true;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:informix-sqli:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:informix-sqli:")) {
return true; // return true;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:gbasedbt-sqli:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:gbasedbt-sqli:")) {
return true; // return true;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:gbase:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:gbase:")) {
return false; // return false;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:h2:tcp:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:h2:tcp:")) {
return false; // return false;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:dm:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:dm:")) {
return true; // return true;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:sqlserver:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:sqlserver:")) {
return false; // return false;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:kingbase:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:kingbase:")) {
return true; // return true;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:kingbase8:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:kingbase8:")) {
return true; // return true;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:oscar:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:oscar:")) {
return true; // return true;
} // }
throw new Exception("can not get schema of url: " + url + "."); // return false;
} // //throw new Exception("can not get schema of url: " + url + ".");
// }
public static String validationQueryOfUrl(String url) throws Exception { // public static String validationQueryOfUrl(String url) throws Exception {
if (StringUtils.containsIgnoreCase(url, "jdbc:db2:")) { // if (StringUtils.containsIgnoreCase(url, "jdbc:db2:")) {
return validationQuery_db2; // return validationQuery_db2;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:oracle:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:oracle:")) {
return validationQuery_oracle; // return validationQuery_oracle;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:mysql:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:mysql:")) {
return validationQuery_mysql; // return validationQuery_mysql;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:postgresql:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:postgresql:")) {
return validationQuery_postgresql; // return validationQuery_postgresql;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:informix-sqli:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:informix-sqli:")) {
return validationQuery_informix; // return validationQuery_informix;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:gbasedbt-sqli:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:gbasedbt-sqli:")) {
return validationQuery_gbase; // return validationQuery_gbase;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:gbase:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:gbase:")) {
return validationQuery_gbasemysql; // return validationQuery_gbasemysql;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:h2:tcp:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:h2:tcp:")) {
return validationQuery_h2; // return validationQuery_h2;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:dm:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:dm:")) {
return validationQuery_dm; // return validationQuery_dm;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:sqlserver:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:sqlserver:")) {
return validationQuery_sqlserver; // return validationQuery_sqlserver;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:kingbase:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:kingbase:")) {
return validationQuery_kingbase; // return validationQuery_kingbase;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:kingbase8:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:kingbase8:")) {
return validationQuery_kingbase8; // return validationQuery_kingbase8;
} else if (StringUtils.containsIgnoreCase(url, "jdbc:oscar:")) { // } else if (StringUtils.containsIgnoreCase(url, "jdbc:oscar:")) {
return validationQuery_oscar; // return validationQuery_oscar;
} // }
throw new Exception("can not get schema of url: " + url + "."); // throw new Exception("can not get schema of url: " + url + ".");
} // }
} }
\ No newline at end of file
...@@ -63,8 +63,9 @@ public class ExternalDataSource extends ConfigObject { ...@@ -63,8 +63,9 @@ public class ExternalDataSource extends ConfigObject {
public static final Integer DEFAULT_MAXIDLETIME = 300; public static final Integer DEFAULT_MAXIDLETIME = 300;
public static final Boolean DEFAULT_AUTOCOMMIT = false; public static final Boolean DEFAULT_AUTOCOMMIT = false;
// 20240428修改为空值,取消默认的SCHEMA这样可以手工适陪各种postgres变种版本.
public static final String DEFAULT_SCHEMA = "X"; // public static final String DEFAULT_SCHEMA = "X";
public static final String DEFAULT_SCHEMA = "";
public static ExternalDataSource defaultInstance() { public static ExternalDataSource defaultInstance() {
......
...@@ -117,14 +117,14 @@ public class ExternalDataSources extends CopyOnWriteArrayList<ExternalDataSource ...@@ -117,14 +117,14 @@ public class ExternalDataSources extends CopyOnWriteArrayList<ExternalDataSource
throw new IllegalStateException("get schema error."); throw new IllegalStateException("get schema error.");
} }
public boolean hasSchema() throws Exception { // public boolean hasSchema() throws Exception {
for (ExternalDataSource o : this) { // for (ExternalDataSource o : this) {
if (BooleanUtils.isTrue(o.getEnable())) { // if (BooleanUtils.isTrue(o.getEnable())) {
return SlicePropertiesBuilder.hasSchemaOfUrl(o.getUrl()); // return SlicePropertiesBuilder.hasSchemaOfUrl(o.getUrl());
} // }
} // }
throw new Exception("hasSchema error."); // throw new Exception("hasSchema error.");
} // }
public String getTransactionIsolation() { public String getTransactionIsolation() {
for (ExternalDataSource o : this) { for (ExternalDataSource o : this) {
......
...@@ -189,7 +189,7 @@ public class ResourceFactory { ...@@ -189,7 +189,7 @@ public class ResourceFactory {
DruidDataSourceC3P0Adapter dataSource = new DruidDataSourceC3P0Adapter(); DruidDataSourceC3P0Adapter dataSource = new DruidDataSourceC3P0Adapter();
dataSource.setJdbcUrl(ds.getUrl()); dataSource.setJdbcUrl(ds.getUrl());
dataSource.setDriverClass(ds.getDriverClassName()); dataSource.setDriverClass(ds.getDriverClassName());
dataSource.setPreferredTestQuery(SlicePropertiesBuilder.validationQueryOfUrl(ds.getUrl())); //dataSource.setPreferredTestQuery(SlicePropertiesBuilder.validationQueryOfUrl(ds.getUrl()));
dataSource.setUser(ds.getUsername()); dataSource.setUser(ds.getUsername());
dataSource.setPassword(ds.getPassword()); dataSource.setPassword(ds.getPassword());
dataSource.setMaxPoolSize(ds.getMaxTotal()); dataSource.setMaxPoolSize(ds.getMaxTotal());
...@@ -250,7 +250,7 @@ public class ResourceFactory { ...@@ -250,7 +250,7 @@ public class ResourceFactory {
+ ";CACHE_SIZE=" + (entry.getValue().getCacheSize() * 1024); + ";CACHE_SIZE=" + (entry.getValue().getCacheSize() * 1024);
dataSource.setJdbcUrl(url); dataSource.setJdbcUrl(url);
dataSource.setDriverClass(SlicePropertiesBuilder.driver_h2); dataSource.setDriverClass(SlicePropertiesBuilder.driver_h2);
dataSource.setPreferredTestQuery(SlicePropertiesBuilder.validationQueryOfUrl(url)); //dataSource.setPreferredTestQuery(SlicePropertiesBuilder.validationQueryOfUrl(url));
dataSource.setUser(H2Tools.USER); dataSource.setUser(H2Tools.USER);
dataSource.setPassword(Config.token().getPassword()); dataSource.setPassword(Config.token().getPassword());
dataSource.setMaxPoolSize(entry.getValue().getMaxTotal()); dataSource.setMaxPoolSize(entry.getValue().getMaxTotal());
......