|
|
|
@ -37,77 +37,83 @@ public enum DatabaseDriver {
|
|
|
|
|
/**
|
|
|
|
|
* Unknown type.
|
|
|
|
|
*/
|
|
|
|
|
UNKNOWN("unknown", null, null),
|
|
|
|
|
UNKNOWN(null, null),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Apache Derby.
|
|
|
|
|
*/
|
|
|
|
|
DERBY("derby", "Apache Derby", "org.apache.derby.jdbc.EmbeddedDriver",
|
|
|
|
|
DERBY("Apache Derby", "org.apache.derby.jdbc.EmbeddedDriver",
|
|
|
|
|
"org.apache.derby.jdbc.EmbeddedXADataSource",
|
|
|
|
|
"SELECT 1 FROM SYSIBM.SYSDUMMY1"),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* H2.
|
|
|
|
|
*/
|
|
|
|
|
H2("h2", "H2", "org.h2.Driver", "org.h2.jdbcx.JdbcDataSource", "SELECT 1"),
|
|
|
|
|
H2("H2", "org.h2.Driver", "org.h2.jdbcx.JdbcDataSource", "SELECT 1"),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* HyperSQL DataBase.
|
|
|
|
|
*/
|
|
|
|
|
HSQLDB("hsqldb", "HSQL Database Engine", "org.hsqldb.jdbc.JDBCDriver",
|
|
|
|
|
HSQLDB("HSQL Database Engine", "org.hsqldb.jdbc.JDBCDriver",
|
|
|
|
|
"org.hsqldb.jdbc.pool.JDBCXADataSource",
|
|
|
|
|
"SELECT COUNT(*) FROM INFORMATION_SCHEMA.SYSTEM_USERS"),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* SQL Lite.
|
|
|
|
|
*/
|
|
|
|
|
SQLITE("sqlite", "SQLite", "org.sqlite.JDBC"),
|
|
|
|
|
SQLITE("SQLite", "org.sqlite.JDBC"),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* MySQL.
|
|
|
|
|
*/
|
|
|
|
|
MYSQL("mysql", "MySQL", "com.mysql.jdbc.Driver",
|
|
|
|
|
MYSQL("MySQL", "com.mysql.jdbc.Driver",
|
|
|
|
|
"com.mysql.jdbc.jdbc2.optional.MysqlXADataSource", "SELECT 1"),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Maria DB.
|
|
|
|
|
*/
|
|
|
|
|
MARIADB("mariadb", "MySQL", "org.mariadb.jdbc.Driver",
|
|
|
|
|
"org.mariadb.jdbc.MariaDbDataSource", "SELECT 1"),
|
|
|
|
|
MARIADB("MySQL", "org.mariadb.jdbc.Driver",
|
|
|
|
|
"org.mariadb.jdbc.MariaDbDataSource", "SELECT 1") {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String getId() {
|
|
|
|
|
return "mysql";
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Google App Engine.
|
|
|
|
|
*/
|
|
|
|
|
GAE("gae", null, "com.google.appengine.api.rdbms.AppEngineDriver"),
|
|
|
|
|
GAE(null, "com.google.appengine.api.rdbms.AppEngineDriver"),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Oracle.
|
|
|
|
|
*/
|
|
|
|
|
ORACLE("oracle", "Oracle", "oracle.jdbc.OracleDriver",
|
|
|
|
|
ORACLE("Oracle", "oracle.jdbc.OracleDriver",
|
|
|
|
|
"oracle.jdbc.xa.client.OracleXADataSource", "SELECT 'Hello' from DUAL"),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Postgres.
|
|
|
|
|
*/
|
|
|
|
|
POSTGRESQL("postgresql", "PostgreSQL", "org.postgresql.Driver",
|
|
|
|
|
"org.postgresql.xa.PGXADataSource", "SELECT 1"),
|
|
|
|
|
POSTGRESQL("PostgreSQL", "org.postgresql.Driver", "org.postgresql.xa.PGXADataSource",
|
|
|
|
|
"SELECT 1"),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* jTDS. As it can be used for several databases, there isn't a single product name we
|
|
|
|
|
* could rely on.
|
|
|
|
|
*/
|
|
|
|
|
JTDS("jtds", null, "net.sourceforge.jtds.jdbc.Driver"),
|
|
|
|
|
JTDS(null, "net.sourceforge.jtds.jdbc.Driver"),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* SQL Server.
|
|
|
|
|
*/
|
|
|
|
|
SQLSERVER("sqlserver", "SQL SERVER", "com.microsoft.sqlserver.jdbc.SQLServerDriver",
|
|
|
|
|
SQLSERVER("SQL SERVER", "com.microsoft.sqlserver.jdbc.SQLServerDriver",
|
|
|
|
|
"com.microsoft.sqlserver.jdbc.SQLServerXADataSource", "SELECT 1"),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Firebird.
|
|
|
|
|
*/
|
|
|
|
|
FIREBIRD("firebird", "Firebird", "org.firebirdsql.jdbc.FBDriver",
|
|
|
|
|
FIREBIRD("Firebird", "org.firebirdsql.jdbc.FBDriver",
|
|
|
|
|
"org.firebirdsql.pool.FBConnectionPoolDataSource",
|
|
|
|
|
"SELECT 1 FROM RDB$DATABASE") {
|
|
|
|
|
|
|
|
|
@ -126,7 +132,7 @@ public enum DatabaseDriver {
|
|
|
|
|
/**
|
|
|
|
|
* DB2 Server.
|
|
|
|
|
*/
|
|
|
|
|
DB2("db2", "DB2", "com.ibm.db2.jcc.DB2Driver", "com.ibm.db2.jcc.DB2XADataSource",
|
|
|
|
|
DB2("DB2", "com.ibm.db2.jcc.DB2Driver", "com.ibm.db2.jcc.DB2XADataSource",
|
|
|
|
|
"SELECT 1 FROM SYSIBM.SYSDUMMY1") {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -139,10 +145,15 @@ public enum DatabaseDriver {
|
|
|
|
|
/**
|
|
|
|
|
* DB2 AS400 Server.
|
|
|
|
|
*/
|
|
|
|
|
DB2_AS400("db2", "DB2 UDB for AS/400", "com.ibm.as400.access.AS400JDBCDriver",
|
|
|
|
|
DB2_AS400("DB2 UDB for AS/400", "com.ibm.as400.access.AS400JDBCDriver",
|
|
|
|
|
"com.ibm.as400.access.AS400JDBCXADataSource",
|
|
|
|
|
"SELECT 1 FROM SYSIBM.SYSDUMMY1") {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String getId() {
|
|
|
|
|
return "db2";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected Collection<String> getUrlPrefixes() {
|
|
|
|
|
return Collections.singleton("as400");
|
|
|
|
@ -158,12 +169,12 @@ public enum DatabaseDriver {
|
|
|
|
|
/**
|
|
|
|
|
* Teradata.
|
|
|
|
|
*/
|
|
|
|
|
TERADATA("teradata", "Teradata", "com.teradata.jdbc.TeraDriver"),
|
|
|
|
|
TERADATA("Teradata", "com.teradata.jdbc.TeraDriver"),
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Informix.
|
|
|
|
|
*/
|
|
|
|
|
INFORMIX("informix", "Informix Dynamic Server", "com.informix.jdbc.IfxDriver", null,
|
|
|
|
|
INFORMIX("Informix Dynamic Server", "com.informix.jdbc.IfxDriver", null,
|
|
|
|
|
"select count(*) from systables") {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -172,8 +183,6 @@ public enum DatabaseDriver {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
private final String id;
|
|
|
|
|
|
|
|
|
|
private final String productName;
|
|
|
|
|
|
|
|
|
|
private final String driverClassName;
|
|
|
|
@ -182,18 +191,17 @@ public enum DatabaseDriver {
|
|
|
|
|
|
|
|
|
|
private final String validationQuery;
|
|
|
|
|
|
|
|
|
|
DatabaseDriver(String id, String productName, String driverClassName) {
|
|
|
|
|
this(id, productName, driverClassName, null);
|
|
|
|
|
DatabaseDriver(String productName, String driverClassName) {
|
|
|
|
|
this(productName, driverClassName, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DatabaseDriver(String id, String productName, String driverClassName,
|
|
|
|
|
DatabaseDriver(String productName, String driverClassName,
|
|
|
|
|
String xaDataSourceClassName) {
|
|
|
|
|
this(id, productName, driverClassName, xaDataSourceClassName, null);
|
|
|
|
|
this(productName, driverClassName, xaDataSourceClassName, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DatabaseDriver(String id, String productName, String driverClassName,
|
|
|
|
|
DatabaseDriver(String productName, String driverClassName,
|
|
|
|
|
String xaDataSourceClassName, String validationQuery) {
|
|
|
|
|
this.id = id;
|
|
|
|
|
this.productName = productName;
|
|
|
|
|
this.driverClassName = driverClassName;
|
|
|
|
|
this.xaDataSourceClassName = xaDataSourceClassName;
|
|
|
|
@ -205,7 +213,7 @@ public enum DatabaseDriver {
|
|
|
|
|
* @return the identifier
|
|
|
|
|
*/
|
|
|
|
|
public String getId() {
|
|
|
|
|
return this.id;
|
|
|
|
|
return name().toLowerCase();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected boolean matchProductName(String productName) {
|
|
|
|
|