소스 검색

完善对字符串判断

Caratacus 8 년 전
부모
커밋
39c5b0c909

+ 9 - 10
mybatis-plus/src/main/java/com/baomidou/framework/service/impl/ServiceImpl.java

@@ -15,15 +15,6 @@
  */
 package com.baomidou.framework.service.impl;
 
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-import java.util.logging.Logger;
-
-import org.apache.ibatis.jdbc.SQL;
-import org.apache.ibatis.session.SqlSession;
-import org.springframework.beans.factory.annotation.Autowired;
-
 import com.baomidou.framework.service.IService;
 import com.baomidou.mybatisplus.activerecord.Record;
 import com.baomidou.mybatisplus.annotations.IdType;
@@ -36,6 +27,14 @@ import com.baomidou.mybatisplus.toolkit.ReflectionKit;
 import com.baomidou.mybatisplus.toolkit.StringUtils;
 import com.baomidou.mybatisplus.toolkit.TableInfo;
 import com.baomidou.mybatisplus.toolkit.TableInfoHelper;
+import org.apache.ibatis.jdbc.SQL;
+import org.apache.ibatis.session.SqlSession;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Logger;
 
 /**
  * <p>
@@ -110,7 +109,7 @@ public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T> {
 			TableInfo tableInfo = TableInfoHelper.getTableInfo(cls);
 			if (null != tableInfo) {
 				Object idVal = ReflectionKit.getMethodValue(cls, entity, tableInfo.getKeyProperty());
-				if (null == idVal || "".equals(idVal)) {
+				if (StringUtils.checkValNull(idVal)) {
 					return insert(entity);
 				} else {
 					/* 特殊处理 INPUT 主键策略逻辑 */

+ 13 - 13
mybatis-plus/src/main/java/com/baomidou/mybatisplus/MybatisDefaultParameterHandler.java

@@ -15,24 +15,24 @@
  */
 package com.baomidou.mybatisplus;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
+import com.baomidou.mybatisplus.annotations.IdType;
+import com.baomidou.mybatisplus.mapper.IMetaObjectHandler;
+import com.baomidou.mybatisplus.toolkit.IdWorker;
+import com.baomidou.mybatisplus.toolkit.StringUtils;
+import com.baomidou.mybatisplus.toolkit.TableInfo;
+import com.baomidou.mybatisplus.toolkit.TableInfoHelper;
 import org.apache.ibatis.mapping.BoundSql;
 import org.apache.ibatis.mapping.MappedStatement;
 import org.apache.ibatis.mapping.SqlCommandType;
 import org.apache.ibatis.reflection.MetaObject;
 import org.apache.ibatis.scripting.defaults.DefaultParameterHandler;
 
-import com.baomidou.mybatisplus.annotations.IdType;
-import com.baomidou.mybatisplus.mapper.IMetaObjectHandler;
-import com.baomidou.mybatisplus.toolkit.IdWorker;
-import com.baomidou.mybatisplus.toolkit.TableInfo;
-import com.baomidou.mybatisplus.toolkit.TableInfoHelper;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
 
 /**
  * <p>
@@ -133,7 +133,7 @@ public class MybatisDefaultParameterHandler extends DefaultParameterHandler {
 			MetaObject metaObject = ms.getConfiguration().newMetaObject(parameterObject);
 			Object idValue = metaObject.getValue(tableInfo.getKeyProperty());
 			/* 自定义 ID */
-			if (null == idValue || "".equals(idValue)) {
+			if (StringUtils.checkValNull(idValue)) {
 				if (tableInfo.getIdType() == IdType.ID_WORKER) {
 					metaObject.setValue(tableInfo.getKeyProperty(), IdWorker.getId());
 				} else if (tableInfo.getIdType() == IdType.UUID) {

+ 13 - 13
mybatis-plus/src/main/java/com/baomidou/mybatisplus/MybatisXMLMapperBuilder.java

@@ -15,17 +15,8 @@
  */
 package com.baomidou.mybatisplus;
 
-import java.io.InputStream;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.baomidou.mybatisplus.toolkit.StringUtils;
 import org.apache.ibatis.builder.BaseBuilder;
 import org.apache.ibatis.builder.BuilderException;
 import org.apache.ibatis.builder.CacheRefResolver;
@@ -49,7 +40,16 @@ import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.type.JdbcType;
 import org.apache.ibatis.type.TypeHandler;
 
-import com.baomidou.mybatisplus.mapper.BaseMapper;
+import java.io.InputStream;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
 
 /**
  * <p>
@@ -122,7 +122,7 @@ public class MybatisXMLMapperBuilder extends BaseBuilder {
 	private void configurationElement(XNode context) {
 		try {
 			String namespace = context.getStringAttribute("namespace");
-			if (namespace == null || namespace.equals("")) {
+			if (StringUtils.isEmpty(namespace)) {
 				throw new BuilderException("Mapper's namespace cannot be empty");
 			}
 			builderAssistant.setCurrentNamespace(namespace);

+ 0 - 17
mybatis-plus/src/main/java/com/baomidou/mybatisplus/mapper/Condition.java

@@ -15,11 +15,8 @@
  */
 package com.baomidou.mybatisplus.mapper;
 
-import com.baomidou.mybatisplus.toolkit.MapUtils;
 import com.baomidou.mybatisplus.toolkit.StringUtils;
 
-import java.util.Map;
-
 /**
  * <p>
  * 条件查询构造器
@@ -31,8 +28,6 @@ import java.util.Map;
 @SuppressWarnings({ "rawtypes", "serial" })
 public class Condition extends Wrapper {
 
-	private Map<String, Object> params;
-
 	/**
 	 * 获取实例
 	 */
@@ -45,10 +40,6 @@ public class Condition extends Wrapper {
 	 */
 	@Override
 	public String getSqlSegment() {
-		Map<String, Object> params = getParams();
-		if (MapUtils.isNotEmpty(params)) {
-			allEq(params);
-		}
 		/*
 		 * 无条件
 		 */
@@ -60,12 +51,4 @@ public class Condition extends Wrapper {
 		return sqlWhere;
 	}
 
-	public Map<String, Object> getParams() {
-		return params;
-	}
-
-	public Condition setParams(Map<String, Object> params) {
-		this.params = params;
-		return this;
-	}
 }

+ 6 - 2
mybatis-plus/src/main/java/com/baomidou/mybatisplus/mapper/Wrapper.java

@@ -126,8 +126,12 @@ public abstract class Wrapper<T> implements Serializable {
         if (MapUtils.isNotEmpty(params)) {
             Iterator iterator = params.entrySet().iterator();
             while (iterator.hasNext()) {
-                Map.Entry entry = (Map.Entry) iterator.next();
-                sql.WHERE(formatSql(String.format("%s = {0}", entry.getKey()), entry.getValue()));
+                Map.Entry<String,Object> entry = (Map.Entry<String,Object>) iterator.next();
+                Object value = entry.getValue();
+                if(StringUtils.checkValNotNull(value)){
+                    sql.WHERE(formatSql(String.format("%s = {0}", entry.getKey()), entry.getValue()));
+                }
+
             }
 
         }

+ 1 - 1
mybatis-plus/src/main/java/com/baomidou/mybatisplus/toolkit/ReflectionKit.java

@@ -113,7 +113,7 @@ public class ReflectionKit {
 			FieldStrategy fieldStrategy = tableFieldInfo.getFieldStrategy();
 			Object val = getMethodValue(cls, bean, tableFieldInfo.getProperty());
 			if (FieldStrategy.NOT_EMPTY.equals(fieldStrategy)) {
-				if (null != val && !val.equals("")) {
+				if (StringUtils.checkValNotNull(val)) {
 					result = true;
 					break;
 				}

+ 41 - 6
mybatis-plus/src/main/java/com/baomidou/mybatisplus/toolkit/StringUtils.java

@@ -49,12 +49,21 @@ public class StringUtils {
 	 * 判断字符串是否为空
 	 * </p>
 	 *
-	 * @param str
+	 * @param cs
 	 *            需要判断字符串
 	 * @return 判断结果
 	 */
-	public static boolean isEmpty(String str) {
-		return str == null || EMPTY_STRING.equals(str.trim());
+	public static boolean isEmpty(final CharSequence cs) {
+		int strLen;
+		if (cs == null || (strLen = cs.length()) == 0) {
+			return true;
+		}
+		for (int i = 0; i < strLen; i++) {
+			if (Character.isWhitespace(cs.charAt(i)) == false) {
+				return false;
+			}
+		}
+		return true;
 	}
 
 	/**
@@ -62,12 +71,12 @@ public class StringUtils {
 	 * 判断字符串是否不为空
 	 * </p>
 	 *
-	 * @param str
+	 * @param cs
 	 *            需要判断字符串
 	 * @return 判断结果
 	 */
-	public static boolean isNotEmpty(String str) {
-		return !isEmpty(str);
+	public static boolean isNotEmpty(final CharSequence cs) {
+		return !isEmpty(cs);
 	}
 
 	/**
@@ -281,4 +290,30 @@ public class StringUtils {
 		return concatCapitalize(null, str);
 	}
 
+	/**
+	 * <p>
+	 * 判断对象是否为空
+	 * </p>
+	 *
+	 * @param object
+	 * @return
+	 */
+	public static boolean checkValNotNull(Object object) {
+		if (object instanceof CharSequence) {
+			return isNotEmpty((CharSequence) object);
+		}
+		return object == null ? false : true;
+	}
+	/**
+	 * <p>
+	 * 判断对象是否为空
+	 * </p>
+	 *
+	 * @param object
+	 * @return
+	 */
+	public static boolean checkValNull(Object object) {
+		return !checkValNotNull(object);
+	}
+
 }