Merge pull request #11466 from Lukas Eder
* gh-11466: Detect jOOQ SQLDialect through jOOQ's JDBCUtils
This commit is contained in:
commit
6a7f75a0b8
|
|
@ -16,17 +16,13 @@
|
|||
|
||||
package org.springframework.boot.autoconfigure.jooq;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.EnumMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.jooq.SQLDialect;
|
||||
import org.jooq.tools.jdbc.JDBCUtils;
|
||||
|
||||
import org.springframework.boot.jdbc.DatabaseDriver;
|
||||
import org.springframework.jdbc.support.JdbcUtils;
|
||||
import org.springframework.jdbc.support.MetaDataAccessException;
|
||||
|
||||
|
|
@ -34,25 +30,12 @@ import org.springframework.jdbc.support.MetaDataAccessException;
|
|||
* Utility to lookup well known {@link SQLDialect SQLDialects} from a {@link DataSource}.
|
||||
*
|
||||
* @author Michael Simons
|
||||
* @author Lukas Eder
|
||||
*/
|
||||
final class SqlDialectLookup {
|
||||
|
||||
private static final Log logger = LogFactory.getLog(SqlDialectLookup.class);
|
||||
|
||||
private static final Map<DatabaseDriver, SQLDialect> LOOKUP;
|
||||
|
||||
static {
|
||||
Map<DatabaseDriver, SQLDialect> map = new EnumMap<>(DatabaseDriver.class);
|
||||
map.put(DatabaseDriver.DERBY, SQLDialect.DERBY);
|
||||
map.put(DatabaseDriver.H2, SQLDialect.H2);
|
||||
map.put(DatabaseDriver.HSQLDB, SQLDialect.HSQLDB);
|
||||
map.put(DatabaseDriver.MARIADB, SQLDialect.MARIADB);
|
||||
map.put(DatabaseDriver.MYSQL, SQLDialect.MYSQL);
|
||||
map.put(DatabaseDriver.POSTGRESQL, SQLDialect.POSTGRES);
|
||||
map.put(DatabaseDriver.SQLITE, SQLDialect.SQLITE);
|
||||
LOOKUP = Collections.unmodifiableMap(map);
|
||||
}
|
||||
|
||||
private SqlDialectLookup() {
|
||||
}
|
||||
|
||||
|
|
@ -67,8 +50,7 @@ final class SqlDialectLookup {
|
|||
}
|
||||
try {
|
||||
String url = JdbcUtils.extractDatabaseMetaData(dataSource, "getURL");
|
||||
DatabaseDriver driver = DatabaseDriver.fromJdbcUrl(url);
|
||||
SQLDialect sqlDialect = LOOKUP.get(driver);
|
||||
SQLDialect sqlDialect = JDBCUtils.dialect(url);
|
||||
if (sqlDialect != null) {
|
||||
return sqlDialect;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue