From 36b5500ad0cdb528de41dba220db33aefc380113 Mon Sep 17 00:00:00 2001 From: Ramil Sayetov Date: Tue, 15 Aug 2023 09:29:39 +0300 Subject: [PATCH 1/2] Reuse JOOQ helper to determine the dialect to use See gh-36991 --- .../boot/autoconfigure/jooq/SqlDialectLookup.java | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/SqlDialectLookup.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/SqlDialectLookup.java index b91b72b6825..cc49388b5bb 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/SqlDialectLookup.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/SqlDialectLookup.java @@ -16,8 +16,7 @@ package org.springframework.boot.autoconfigure.jooq; -import java.sql.DatabaseMetaData; - +import java.sql.SQLException; import javax.sql.DataSource; import org.apache.commons.logging.Log; @@ -25,14 +24,12 @@ import org.apache.commons.logging.LogFactory; import org.jooq.SQLDialect; import org.jooq.tools.jdbc.JDBCUtils; -import org.springframework.jdbc.support.JdbcUtils; -import org.springframework.jdbc.support.MetaDataAccessException; - /** * Utility to lookup well known {@link SQLDialect SQLDialects} from a {@link DataSource}. * * @author Michael Simons * @author Lukas Eder + * @author Ramil Saetov */ final class SqlDialectLookup { @@ -51,13 +48,9 @@ final class SqlDialectLookup { return SQLDialect.DEFAULT; } try { - String url = JdbcUtils.extractDatabaseMetaData(dataSource, DatabaseMetaData::getURL); - SQLDialect sqlDialect = JDBCUtils.dialect(url); - if (sqlDialect != null) { - return sqlDialect; - } + return JDBCUtils.dialect(dataSource.getConnection()); } - catch (MetaDataAccessException ex) { + catch (SQLException ex) { logger.warn("Unable to determine jdbc url from datasource", ex); } return SQLDialect.DEFAULT; From 37467c79d0642375ba7d26c1b5a823ea8735fc33 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Wed, 16 Aug 2023 15:56:16 +0200 Subject: [PATCH 2/2] Polish "Reuse JOOQ helper to determine the dialect to use" See gh-36991 --- .../boot/autoconfigure/jooq/SqlDialectLookup.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/SqlDialectLookup.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/SqlDialectLookup.java index cc49388b5bb..4213e39c50b 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/SqlDialectLookup.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jooq/SqlDialectLookup.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,7 +16,9 @@ package org.springframework.boot.autoconfigure.jooq; +import java.sql.Connection; import java.sql.SQLException; + import javax.sql.DataSource; import org.apache.commons.logging.Log; @@ -44,14 +46,12 @@ final class SqlDialectLookup { * @return the most suitable {@link SQLDialect} */ static SQLDialect getDialect(DataSource dataSource) { - if (dataSource == null) { - return SQLDialect.DEFAULT; - } try { - return JDBCUtils.dialect(dataSource.getConnection()); + Connection connection = (dataSource != null) ? dataSource.getConnection() : null; + return JDBCUtils.dialect(connection); } catch (SQLException ex) { - logger.warn("Unable to determine jdbc url from datasource", ex); + logger.warn("Unable to determine dialect from datasource", ex); } return SQLDialect.DEFAULT; }