Browse Source

优化获取方言

mxd 5 years ago
parent
commit
820d3ab59e
1 changed files with 13 additions and 12 deletions
  1. 13 12
      src/main/java/org/ssssssss/executor/SqlExecutor.java

+ 13 - 12
src/main/java/org/ssssssss/executor/SqlExecutor.java

@@ -254,19 +254,20 @@ public class SqlExecutor {
      * 获取数据库方言
      * 获取数据库方言
      */
      */
     public Dialect getDialect(String dataSourceName) throws SQLException {
     public Dialect getDialect(String dataSourceName) throws SQLException {
-        if (cachedDialects.containsKey(dataSourceName)) {
+        Dialect dialect = cachedDialects.get(cachedDialects);
-            return cachedDialects.get(cachedDialects);
+        if (dialect == null && !cachedDialects.containsKey(dataSourceName)) {
-        }
+            JdbcTemplate jdbcTemplate = getJdbcTemplate(dataSourceName);
-        JdbcTemplate jdbcTemplate = getJdbcTemplate(dataSourceName);
+            Connection connection = jdbcTemplate.getDataSource().getConnection();
-        Connection connection = jdbcTemplate.getDataSource().getConnection();
+            try {
-        try {
+                dialect = DialectUtils.getDialectFromUrl(connection.getMetaData().getURL());
-            Dialect dialect = DialectUtils.getDialectFromUrl(connection.getMetaData().getURL());
+                cachedDialects.put(dataSourceName, dialect);
-            cachedDialects.put(dataSourceName, dialect);
+                return dialect;
-            return dialect;
+            } finally {
-        } finally {
+                // 释放连接
-            // 释放连接
+                DataSourceUtils.releaseConnection(connection, jdbcTemplate.getDataSource());
-            DataSourceUtils.releaseConnection(connection, jdbcTemplate.getDataSource());
+            }
         }
         }
+        return dialect;
     }
     }
 
 
 }
 }