diff --git a/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java b/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java index 22522b794a..27b7548594 100644 --- a/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java +++ b/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java @@ -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 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) {