miemie il y a 7 ans
Parent
commit
f9b8fd63ab

+ 3 - 4
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/EncryptUtils.java

@@ -15,6 +15,7 @@
  */
 package com.baomidou.mybatisplus.core.toolkit;
 
+import java.nio.charset.StandardCharsets;
 import java.security.MessageDigest;
 import java.util.Base64;
 
@@ -28,7 +29,6 @@ import java.util.Base64;
  */
 public class EncryptUtils {
 
-
     /**
      * <p>
      * MD5 Base64 加密
@@ -42,11 +42,10 @@ public class EncryptUtils {
         try {
             MessageDigest md5 = MessageDigest.getInstance(Constants.MD5);
             //加密后的字符串
-            byte[] src = md5.digest(str.getBytes(Constants.UTF8));
+            byte[] src = md5.digest(str.getBytes(StandardCharsets.UTF_8));
             return Base64.getEncoder().encodeToString(src);
         } catch (Exception e) {
-            ExceptionUtils.mpe(e);
+            throw ExceptionUtils.mpe(e);
         }
-        return null;
     }
 }

+ 9 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/TableInfoHelper.java

@@ -38,6 +38,7 @@ import org.apache.ibatis.session.SqlSessionFactory;
 import java.lang.reflect.Field;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.regex.Pattern;
 
 import static java.util.stream.Collectors.toList;
 
@@ -60,6 +61,10 @@ public class TableInfoHelper {
      * 默认表主键
      */
     private static final String DEFAULT_ID_NAME = "id";
+    /**
+     * 验证字符串是否是数据库字段
+     */
+    private static final Pattern P = Pattern.compile("^\\w\\S*[\\w\\d]*$");
 
     /**
      * <p>
@@ -423,6 +428,10 @@ public class TableInfoHelper {
      * @return related
      */
     public static boolean checkRelated(boolean underCamel, String property, String column) {
+        if (!P.matcher(column).matches()) {
+            //首尾有转义符
+            column = column.substring(1, column.length() - 1);
+        }
         if (underCamel) {
             /**
              * 开启了驼峰,判断 property 下划线后是否与 column 相同 (全部转为小写)

+ 7 - 2
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/test/EncryptTest.java

@@ -1,10 +1,10 @@
 package com.baomidou.mybatisplus.core.test;
 
+import com.baomidou.mybatisplus.core.toolkit.EncryptUtils;
+import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 import org.junit.Assert;
 import org.junit.Test;
 
-import com.baomidou.mybatisplus.core.toolkit.EncryptUtils;
-
 /**
  * 加密测试
  */
@@ -15,4 +15,9 @@ public class EncryptTest {
         Assert.assertEquals("Jgmg8jeuq9EyB1ybYtj1fg==",
             EncryptUtils.md5Base64("犯我中华者虽远必诛"));
     }
+
+    @Test
+    public void other() {
+        System.out.println(TableInfoHelper.checkRelated(true, "order", "'order'"));
+    }
 }