BATCH-810: added mainframe incrementer as "db2zos", also added to metadata lookup
This commit is contained in:
@@ -32,6 +32,7 @@ import org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrem
|
||||
import org.springframework.jdbc.support.incrementer.PostgreSQLSequenceMaxValueIncrementer;
|
||||
import org.springframework.jdbc.support.incrementer.SqlServerMaxValueIncrementer;
|
||||
import org.springframework.jdbc.support.incrementer.SybaseMaxValueIncrementer;
|
||||
import org.springframework.jdbc.support.incrementer.DB2MainframeSequenceMaxValueIncrementer;
|
||||
|
||||
/**
|
||||
* Default implementation of the {@link DataFieldMaxValueIncrementerFactory}
|
||||
@@ -41,6 +42,7 @@ import org.springframework.jdbc.support.incrementer.SybaseMaxValueIncrementer;
|
||||
*
|
||||
* <ul>
|
||||
* <li>db2</li>
|
||||
* <li>db2zos</li>
|
||||
* <li>derby</li>
|
||||
* <li>hsql</li>
|
||||
* <li>mysql</li>
|
||||
@@ -81,6 +83,9 @@ public class DefaultDataFieldMaxValueIncrementerFactory implements DataFieldMaxV
|
||||
if (databaseType == DB2) {
|
||||
return new DB2SequenceMaxValueIncrementer(dataSource, incrementerName);
|
||||
}
|
||||
else if (databaseType == DB2ZOS) {
|
||||
return new DB2MainframeSequenceMaxValueIncrementer(dataSource, incrementerName);
|
||||
}
|
||||
else if (databaseType == DERBY) {
|
||||
return new DerbyMaxValueIncrementer(dataSource, incrementerName, incrementerColumnName);
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ public class SimpleDelegatingPagingQueryProvider extends AbstractSqlPagingQueryP
|
||||
if (type == DERBY) {
|
||||
delegate = new DerbyPagingQueryProvider();
|
||||
}
|
||||
else if (type == DB2) {
|
||||
else if (type == DB2 || type == DB2ZOS) {
|
||||
delegate = new Db2PagingQueryProvider();
|
||||
}
|
||||
else if (type == HSQL) {
|
||||
|
||||
@@ -24,7 +24,8 @@ public enum DatabaseType {
|
||||
|
||||
DERBY("Apache Derby"),
|
||||
DB2("DB2"),
|
||||
HSQL("HSQL Database Engine"),
|
||||
DB2ZOS("DB2ZOS"),
|
||||
HSQL("HSQL Database Engine"),
|
||||
SQLSERVER("Microsoft SQL Server"),
|
||||
MYSQL("MySQL"),
|
||||
ORACLE("Oracle"),
|
||||
@@ -76,9 +77,21 @@ public enum DatabaseType {
|
||||
* @throws MetaDataAccessException
|
||||
*/
|
||||
public static DatabaseType fromMetaData(DataSource dataSource) throws MetaDataAccessException{
|
||||
String databaseProductName = JdbcUtils.commonDatabaseName(
|
||||
JdbcUtils.extractDatabaseMetaData(dataSource, "getDatabaseProductName").toString());
|
||||
|
||||
String databaseProductName =
|
||||
JdbcUtils.extractDatabaseMetaData(dataSource, "getDatabaseProductName").toString();
|
||||
if ("DB2".equals(databaseProductName)) {
|
||||
String databaseProductVersion =
|
||||
JdbcUtils.extractDatabaseMetaData(dataSource, "getDatabaseProductVersion").toString();
|
||||
if (!databaseProductVersion.startsWith("SQL")) {
|
||||
databaseProductName = "DB2ZOS";
|
||||
}
|
||||
else {
|
||||
databaseProductName = JdbcUtils.commonDatabaseName(databaseProductName);
|
||||
}
|
||||
}
|
||||
else {
|
||||
databaseProductName = JdbcUtils.commonDatabaseName(databaseProductName);
|
||||
}
|
||||
return fromProductName(databaseProductName);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user