Browse Source

解决getOne警告日志打印问题.

nieqiuqiu 6 years ago
parent
commit
8041c23b6b

+ 12 - 2
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/activerecord/Model.java

@@ -18,9 +18,17 @@ package com.baomidou.mybatisplus.extension.activerecord;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.enums.SqlMethod;
 import com.baomidou.mybatisplus.core.enums.SqlMethod;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.*;
+import com.baomidou.mybatisplus.core.toolkit.Assert;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
+import com.baomidou.mybatisplus.core.toolkit.ReflectionKit;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
 import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
 import com.baomidou.mybatisplus.extension.toolkit.SqlRunner;
 import com.baomidou.mybatisplus.extension.toolkit.SqlRunner;
+
+import org.apache.ibatis.logging.Log;
+import org.apache.ibatis.logging.LogFactory;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSession;
 import org.mybatis.spring.SqlSessionUtils;
 import org.mybatis.spring.SqlSessionUtils;
 
 
@@ -45,6 +53,8 @@ public abstract class Model<T extends Model<?>> implements Serializable {
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
+    private transient Log log = LogFactory.getLog(getClass());
+
     /**
     /**
      * 插入(字段选择插入)
      * 插入(字段选择插入)
      */
      */
@@ -193,7 +203,7 @@ public abstract class Model<T extends Model<?>> implements Serializable {
      * @param queryWrapper 实体对象封装操作类(可以为 null)
      * @param queryWrapper 实体对象封装操作类(可以为 null)
      */
      */
     public T selectOne(Wrapper<T> queryWrapper) {
     public T selectOne(Wrapper<T> queryWrapper) {
-        return SqlHelper.getObject(selectList(queryWrapper));
+        return SqlHelper.getObject(log, selectList(queryWrapper));
     }
     }
 
 
     /**
     /**

+ 1 - 4
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/IService.java

@@ -25,7 +25,6 @@ import com.baomidou.mybatisplus.extension.service.additional.query.impl.QueryCha
 import com.baomidou.mybatisplus.extension.service.additional.update.ChainUpdate;
 import com.baomidou.mybatisplus.extension.service.additional.update.ChainUpdate;
 import com.baomidou.mybatisplus.extension.service.additional.update.impl.LambdaUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.additional.update.impl.LambdaUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.additional.update.impl.UpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.additional.update.impl.UpdateChainWrapper;
-import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
@@ -214,9 +213,7 @@ public interface IService<T> {
      * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
      * @param queryWrapper 实体对象封装操作类 {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper}
      * @param mapper       转换函数
      * @param mapper       转换函数
      */
      */
-    default <V> V getObj(Wrapper<T> queryWrapper, Function<? super Object, V> mapper) {
-        return SqlHelper.getObject(listObjs(queryWrapper, mapper));
-    }
+    <V> V getObj(Wrapper<T> queryWrapper, Function<? super Object, V> mapper);
 
 
     /**
     /**
      * 根据 Wrapper 条件,查询总记录数
      * 根据 Wrapper 条件,查询总记录数

+ 25 - 16
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/impl/ServiceImpl.java

@@ -15,20 +15,6 @@
  */
  */
 package com.baomidou.mybatisplus.extension.service.impl;
 package com.baomidou.mybatisplus.extension.service.impl;
 
 
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import org.apache.ibatis.binding.MapperMethod;
-import org.apache.ibatis.session.SqlSession;
-import org.mybatis.spring.SqlSessionUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.enums.SqlMethod;
 import com.baomidou.mybatisplus.core.enums.SqlMethod;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -43,6 +29,22 @@ import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
 import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
 
 
+import org.apache.ibatis.binding.MapperMethod;
+import org.apache.ibatis.logging.Log;
+import org.apache.ibatis.logging.LogFactory;
+import org.apache.ibatis.session.SqlSession;
+import org.mybatis.spring.SqlSessionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
 /**
 /**
  * IService 实现类( 泛型:M 是 mapper 对象,T 是实体 , PK 是主键泛型 )
  * IService 实现类( 泛型:M 是 mapper 对象,T 是实体 , PK 是主键泛型 )
  *
  *
@@ -52,6 +54,8 @@ import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
 @SuppressWarnings("unchecked")
 @SuppressWarnings("unchecked")
 public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T> {
 public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T> {
 
 
+    protected Log log = LogFactory.getLog(getClass());
+
     @Autowired
     @Autowired
     protected M baseMapper;
     protected M baseMapper;
 
 
@@ -254,12 +258,12 @@ public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T> {
         if (throwEx) {
         if (throwEx) {
             return baseMapper.selectOne(queryWrapper);
             return baseMapper.selectOne(queryWrapper);
         }
         }
-        return SqlHelper.getObject(baseMapper.selectList(queryWrapper));
+        return SqlHelper.getObject(log, baseMapper.selectList(queryWrapper));
     }
     }
 
 
     @Override
     @Override
     public Map<String, Object> getMap(Wrapper<T> queryWrapper) {
     public Map<String, Object> getMap(Wrapper<T> queryWrapper) {
-        return SqlHelper.getObject(baseMapper.selectMaps(queryWrapper));
+        return SqlHelper.getObject(log, baseMapper.selectMaps(queryWrapper));
     }
     }
 
 
     @Override
     @Override
@@ -291,4 +295,9 @@ public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T> {
     public IPage<Map<String, Object>> pageMaps(IPage<T> page, Wrapper<T> queryWrapper) {
     public IPage<Map<String, Object>> pageMaps(IPage<T> page, Wrapper<T> queryWrapper) {
         return baseMapper.selectMapsPage(page, queryWrapper);
         return baseMapper.selectMapsPage(page, queryWrapper);
     }
     }
+
+    @Override
+    public <V> V getObj(Wrapper<T> queryWrapper, Function<? super Object, V> mapper) {
+        return SqlHelper.getObject(log, listObjs(queryWrapper, mapper));
+    }
 }
 }

+ 20 - 7
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/SqlHelper.java

@@ -15,7 +15,11 @@
  */
  */
 package com.baomidou.mybatisplus.extension.toolkit;
 package com.baomidou.mybatisplus.extension.toolkit;
 
 
-import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.TableInfo;
+import com.baomidou.mybatisplus.core.toolkit.Assert;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
+import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 
 
 import org.apache.ibatis.logging.Log;
 import org.apache.ibatis.logging.Log;
 import org.apache.ibatis.logging.LogFactory;
 import org.apache.ibatis.logging.LogFactory;
@@ -24,11 +28,7 @@ import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.mybatis.spring.SqlSessionUtils;
 import org.mybatis.spring.SqlSessionUtils;
 
 
-import com.baomidou.mybatisplus.core.metadata.TableInfo;
-import com.baomidou.mybatisplus.core.toolkit.Assert;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
-import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
+import java.util.List;
 
 
 /**
 /**
  * SQL 辅助类
  * SQL 辅助类
@@ -120,13 +120,26 @@ public final class SqlHelper {
      *
      *
      * @param list ignore
      * @param list ignore
      * @param <E> ignore
      * @param <E> ignore
+     * @deprecated 3.1.1
      * @return ignore
      * @return ignore
      */
      */
+    @Deprecated
     public static <E> E getObject(List<E> list) {
     public static <E> E getObject(List<E> list) {
+        return getObject(logger, list);
+    }
+
+    /**
+     * 从list中取第一条数据返回对应List中泛型的单个结果
+     *
+     * @param list ignore
+     * @param <E> ignore
+     * @return ignore
+     */
+    public static <E> E getObject(Log log, List<E> list) {
         if (CollectionUtils.isNotEmpty(list)) {
         if (CollectionUtils.isNotEmpty(list)) {
             int size = list.size();
             int size = list.size();
             if (size > 1) {
             if (size > 1) {
-                logger.warn(String.format("Warn: execute Method There are  %s results.", size));
+                log.warn(String.format("Warn: execute Method There are  %s results.", size));
             }
             }
             return list.get(0);
             return list.get(0);
         }
         }

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

@@ -15,19 +15,21 @@
  */
  */
 package com.baomidou.mybatisplus.extension.toolkit;
 package com.baomidou.mybatisplus.extension.toolkit;
 
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import com.baomidou.mybatisplus.core.assist.ISqlRunner;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 
 
+import org.apache.ibatis.logging.Log;
+import org.apache.ibatis.logging.LogFactory;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.mybatis.spring.SqlSessionUtils;
 import org.mybatis.spring.SqlSessionUtils;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
-import com.baomidou.mybatisplus.core.assist.ISqlRunner;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * SqlRunner 执行 SQL
  * SqlRunner 执行 SQL
@@ -37,6 +39,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  */
  */
 public class SqlRunner implements ISqlRunner {
 public class SqlRunner implements ISqlRunner {
 
 
+    private Log log = LogFactory.getLog(SqlRunner.class);
     // 单例Query
     // 单例Query
     public static final SqlRunner DEFAULT = new SqlRunner();
     public static final SqlRunner DEFAULT = new SqlRunner();
     // 默认FACTORY
     // 默认FACTORY
@@ -168,7 +171,7 @@ public class SqlRunner implements ISqlRunner {
      */
      */
     @Override
     @Override
     public Object selectObj(String sql, Object... args) {
     public Object selectObj(String sql, Object... args) {
-        return SqlHelper.getObject(selectObjs(sql, args));
+        return SqlHelper.getObject(log, selectObjs(sql, args));
     }
     }
 
 
     @Override
     @Override
@@ -183,7 +186,7 @@ public class SqlRunner implements ISqlRunner {
 
 
     @Override
     @Override
     public Map<String, Object> selectOne(String sql, Object... args) {
     public Map<String, Object> selectOne(String sql, Object... args) {
-        return SqlHelper.getObject(selectList(sql, args));
+        return SqlHelper.getObject(log, selectList(sql, args));
     }
     }
 
 
     @SuppressWarnings({"unchecked", "rawtypes"})
     @SuppressWarnings({"unchecked", "rawtypes"})