Browse Source

给大佬改完了.

聂秋荣 7 years ago
parent
commit
f2dcfa9931

+ 7 - 12
mybatis-plus-support/src/main/java/com/baomidou/mybatisplus/mapper/SqlHelper.java

@@ -17,6 +17,7 @@ package com.baomidou.mybatisplus.mapper;
 
 
 import java.util.List;
 import java.util.List;
 
 
+import com.baomidou.mybatisplus.MybatisSqlSessionTemplate;
 import org.apache.ibatis.logging.Log;
 import org.apache.ibatis.logging.Log;
 import org.apache.ibatis.logging.LogFactory;
 import org.apache.ibatis.logging.LogFactory;
 import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.session.Configuration;
@@ -31,7 +32,6 @@ import com.baomidou.mybatisplus.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.toolkit.GlobalConfigUtils;
 import com.baomidou.mybatisplus.toolkit.GlobalConfigUtils;
 import com.baomidou.mybatisplus.toolkit.MapUtils;
 import com.baomidou.mybatisplus.toolkit.MapUtils;
 import com.baomidou.mybatisplus.toolkit.TableInfoHelper;
 import com.baomidou.mybatisplus.toolkit.TableInfoHelper;
-import org.mybatis.spring.SqlSessionUtils;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -66,15 +66,11 @@ public class SqlHelper {
      * @return
      * @return
      */
      */
     private static SqlSession getSqlSession(Class<?> clazz) {
     private static SqlSession getSqlSession(Class<?> clazz) {
-        SqlSession session = null;
-        try {
-            SqlSessionFactory sqlSessionFactory = GlobalConfigUtils.currentSessionFactory(clazz);
-            Configuration configuration = sqlSessionFactory.getConfiguration();
-            session = GlobalConfigUtils.getGlobalConfig(configuration).getSqlSession();
-        } catch (Exception e) {
-            // ignored
-        }
-        return session;
+        SqlSessionFactory sqlSessionFactory = GlobalConfigUtils.currentSessionFactory(clazz);
+        Configuration configuration = sqlSessionFactory.getConfiguration();
+        SqlSession sqlSession = GlobalConfigUtils.getGlobalConfig(configuration).getSqlSession();
+        //感觉也不可能为空了,后面那个做保险把.
+        return sqlSession !=null ? sqlSession : new MybatisSqlSessionTemplate(sqlSessionFactory);
     }
     }
 
 
     /**
     /**
@@ -86,8 +82,7 @@ public class SqlHelper {
      * @return SqlSession
      * @return SqlSession
      */
      */
     public static SqlSession sqlSession(Class<?> clazz) {
     public static SqlSession sqlSession(Class<?> clazz) {
-        SqlSession sqlSession = getSqlSession(clazz);
-        return sqlSession !=null ? sqlSession:SqlSessionUtils.getSqlSession(GlobalConfigUtils.currentSessionFactory(clazz));
+        return getSqlSession(clazz);
     }
     }
 
 
     /**
     /**

+ 5 - 3
mybatis-plus-support/src/main/java/com/baomidou/mybatisplus/mapper/SqlRunner.java

@@ -50,7 +50,7 @@ public class SqlRunner {
     // 默认FACTORY
     // 默认FACTORY
     public static SqlSessionFactory FACTORY;
     public static SqlSessionFactory FACTORY;
     private SqlSessionFactory sqlSessionFactory;
     private SqlSessionFactory sqlSessionFactory;
-    private static SqlSession SQL_SESSION;
+    private SqlSession sqlSession;
 
 
     private Class<?> clazz;
     private Class<?> clazz;
 
 
@@ -73,7 +73,6 @@ public class SqlRunner {
         // 初始化的静态变量 还是有前后加载的问题 该判断只会执行一次
         // 初始化的静态变量 还是有前后加载的问题 该判断只会执行一次
         if (DEFAULT.sqlSessionFactory == null) {
         if (DEFAULT.sqlSessionFactory == null) {
             DEFAULT.sqlSessionFactory = FACTORY;
             DEFAULT.sqlSessionFactory = FACTORY;
-            SQL_SESSION = new MybatisSqlSessionTemplate(FACTORY);
         }
         }
         return DEFAULT;
         return DEFAULT;
     }
     }
@@ -177,7 +176,10 @@ public class SqlRunner {
      * <p/>
      * <p/>
      */
      */
     private SqlSession sqlSession() {
     private SqlSession sqlSession() {
-        return (clazz != null) ? SqlHelper.sqlSession(clazz) : SQL_SESSION;
+        if(sqlSession == null){
+            this.sqlSession = new MybatisSqlSessionTemplate(FACTORY);
+        }
+        return (clazz != null) ? SqlHelper.sqlSession(clazz):sqlSession;
     }
     }
 
 
 }
 }

+ 5 - 5
mybatis-plus-support/src/main/java/com/baomidou/mybatisplus/toolkit/TableInfoHelper.java

@@ -82,16 +82,16 @@ public class TableInfoHelper {
             return tableInfo;
             return tableInfo;
         }else{
         }else{
             //尝试获取父类缓存
             //尝试获取父类缓存
-            Class c = clazz;
-            while (tableInfo==null && Object.class!=c){
-                c = c.getSuperclass();
-                tableInfo = tableInfoCache.get(ClassUtils.getUserClass(c).getName());
+            Class currentClass = clazz;
+            while (tableInfo==null && Object.class!=currentClass){
+                currentClass = currentClass.getSuperclass();
+                tableInfo = tableInfoCache.get(ClassUtils.getUserClass(currentClass).getName());
             }
             }
             if(tableInfo!=null){
             if(tableInfo!=null){
                 tableInfoCache.put(ClassUtils.getUserClass(clazz).getName(),tableInfo);
                 tableInfoCache.put(ClassUtils.getUserClass(clazz).getName(),tableInfo);
             }else{
             }else{
                 //找不到了,我也很绝望呀
                 //找不到了,我也很绝望呀
-                logger.warn(ClassUtils.getUserClass(clazz).getName() + "Not Found TableInfoCache.");
+                throw new MybatisPlusException(ClassUtils.getUserClass(clazz).getName() + "Not Found TableInfoCache.");
             }
             }
         }
         }
         return tableInfo;
         return tableInfo;