Sfoglia il codice sorgente

Merge pull request #3605 from nancheung97/sqlssion

SqlRunner优化重复代码
qmdx 4 anni fa
parent
commit
7bac53a542

+ 10 - 9
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/SqlRunner.java

@@ -29,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 /**
  * SqlRunner 执行 SQL
@@ -42,7 +43,6 @@ public class SqlRunner implements ISqlRunner {
     // 单例Query
     public static final SqlRunner DEFAULT = new SqlRunner();
     // 默认FACTORY
-//    public static SqlSessionFactory FACTORY;
     private SqlSessionFactory sqlSessionFactory;
 
     private Class<?> clazz;
@@ -221,7 +221,7 @@ public class SqlRunner implements ISqlRunner {
      * 获取Session 默认自动提交
      */
     private SqlSession sqlSession() {
-        return (clazz != null) ? SqlSessionUtils.getSqlSession(GlobalConfigUtils.currentSessionFactory(clazz)) : SqlSessionUtils.getSqlSession(sqlSessionFactory);
+        return SqlSessionUtils.getSqlSession(getSqlSessionFactory());
     }
 
     /**
@@ -230,12 +230,13 @@ public class SqlRunner implements ISqlRunner {
      * @param sqlSession session
      */
     private void closeSqlSession(SqlSession sqlSession) {
-        SqlSessionFactory sqlSessionFactory;
-        if (clazz != null) {
-            sqlSessionFactory = GlobalConfigUtils.currentSessionFactory(clazz);
-        } else {
-            sqlSessionFactory = DEFAULT.sqlSessionFactory;
-        }
-        SqlSessionUtils.closeSqlSession(sqlSession, sqlSessionFactory);
+        SqlSessionUtils.closeSqlSession(sqlSession, getSqlSessionFactory());
+    }
+
+    /**
+     * 获取SqlSessionFactory
+     */
+    private SqlSessionFactory getSqlSessionFactory() {
+        return Optional.ofNullable(clazz).map(GlobalConfigUtils::currentSessionFactory).orElse(sqlSessionFactory);
     }
 }