hubin 7 роки тому
батько
коміт
f95cec1e01

+ 3 - 33
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/AutoSqlInjector.java → mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/AbstractSqlInjector.java

@@ -34,10 +34,7 @@ import com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils;
  * @author hubin
  * @since 2018-04-07
  */
-public class AutoSqlInjector implements ISqlInjector {
-
-    private List<AbstractMethod> methodList;
-
+public abstract class AbstractSqlInjector implements ISqlInjector {
 
     /**
      * <p>
@@ -49,25 +46,6 @@ public class AutoSqlInjector implements ISqlInjector {
      */
     @Override
     public void inspectInject(MapperBuilderAssistant builderAssistant, Class<?> mapperClass) {
-        String className = mapperClass.toString();
-        Set<String> mapperRegistryCache = GlobalConfigUtils.getMapperRegistryCache(builderAssistant.getConfiguration());
-        if (!mapperRegistryCache.contains(className)) {
-            inject(builderAssistant, mapperClass);
-            mapperRegistryCache.add(className);
-        }
-    }
-
-
-    /**
-     * <p>
-     * CRUD 注入后给予标识 注入过后不再注入
-     * </p>
-     *
-     * @param builderAssistant
-     * @param mapperClass
-     */
-//    @Override
-    public void inject(MapperBuilderAssistant builderAssistant, Class<?> mapperClass) {
         String className = mapperClass.toString();
         Set<String> mapperRegistryCache = GlobalConfigUtils.getMapperRegistryCache(builderAssistant.getConfiguration());
         if (!mapperRegistryCache.contains(className)) {
@@ -86,19 +64,11 @@ public class AutoSqlInjector implements ISqlInjector {
 
     @Override
     public void injectSqlRunner(Configuration configuration) {
-        // TODO 这里考虑控制是否初始化 SqlRuner
-        new SqlRunnerInjector().inject(configuration);
+        // to do nothing
     }
 
 
-    public List<AbstractMethod> getMethodList() {
-        return methodList;
-    }
-
-
-    public void setMethodList(List<AbstractMethod> methodList) {
-        this.methodList = methodList;
-    }
+    public abstract List<AbstractMethod> getMethodList();
 
 
 }

+ 85 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/DefaultSqlInjector.java

@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2011-2020, hubin (jobob@qq.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.baomidou.mybatisplus.core.injector;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.ibatis.session.Configuration;
+
+import com.baomidou.mybatisplus.core.injector.methods.Delete;
+import com.baomidou.mybatisplus.core.injector.methods.DeleteBatchByIds;
+import com.baomidou.mybatisplus.core.injector.methods.DeleteById;
+import com.baomidou.mybatisplus.core.injector.methods.DeleteByMap;
+import com.baomidou.mybatisplus.core.injector.methods.Insert;
+import com.baomidou.mybatisplus.core.injector.methods.InsertAllColumn;
+import com.baomidou.mybatisplus.core.injector.methods.SelectBatchByIds;
+import com.baomidou.mybatisplus.core.injector.methods.SelectById;
+import com.baomidou.mybatisplus.core.injector.methods.SelectByMap;
+import com.baomidou.mybatisplus.core.injector.methods.SelectCount;
+import com.baomidou.mybatisplus.core.injector.methods.SelectList;
+import com.baomidou.mybatisplus.core.injector.methods.SelectMaps;
+import com.baomidou.mybatisplus.core.injector.methods.SelectMapsPage;
+import com.baomidou.mybatisplus.core.injector.methods.SelectObjs;
+import com.baomidou.mybatisplus.core.injector.methods.SelectOne;
+import com.baomidou.mybatisplus.core.injector.methods.SelectPage;
+import com.baomidou.mybatisplus.core.injector.methods.Update;
+import com.baomidou.mybatisplus.core.injector.methods.UpdateAllColumnById;
+import com.baomidou.mybatisplus.core.injector.methods.UpdateById;
+
+
+/**
+ * <p>
+ * SQL 默认注入器
+ * </p>
+ *
+ * @author hubin
+ * @since 2018-04-10
+ */
+public class DefaultSqlInjector extends AbstractSqlInjector {
+
+
+    @Override
+    public List<AbstractMethod> getMethodList() {
+        List<AbstractMethod> methodList = new ArrayList<>();
+        methodList.add(new Insert());
+        methodList.add(new InsertAllColumn());
+        methodList.add(new Delete());
+        methodList.add(new DeleteByMap());
+        methodList.add(new DeleteById());
+        methodList.add(new DeleteBatchByIds());
+        methodList.add(new Update());
+        methodList.add(new UpdateById());
+        methodList.add(new UpdateAllColumnById());
+        methodList.add(new SelectById());
+        methodList.add(new SelectBatchByIds());
+        methodList.add(new SelectByMap());
+        methodList.add(new SelectOne());
+        methodList.add(new SelectCount());
+        methodList.add(new SelectMaps());
+        methodList.add(new SelectMapsPage());
+        methodList.add(new SelectObjs());
+        methodList.add(new SelectList());
+        methodList.add(new SelectPage());
+        return methodList;
+    }
+
+
+    @Override
+    public void injectSqlRunner(Configuration configuration) {
+        new SqlRunnerInjector().inject(configuration);
+    }
+}

+ 0 - 10
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/ISqlInjector.java

@@ -30,16 +30,6 @@ import com.baomidou.mybatisplus.core.assist.ISqlRunner;
  */
 public interface ISqlInjector {
 
-//    /**
-//     * <p>
-//     * 根据 mapperClass 注入SQL
-//     * </p>
-//     *
-//     * @param builderAssistant
-//     * @param mapperClass
-//     */
-//    void inject(MapperBuilderAssistant builderAssistant, Class<?> mapperClass);
-
     /**
      * <p>
      * 检查SQL是否注入(已经注入过不再注入)

+ 2 - 2
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/GlobalConfigUtils.java

@@ -19,7 +19,7 @@ import com.baomidou.mybatisplus.core.enums.IDBType;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
-import com.baomidou.mybatisplus.core.injector.AutoSqlInjector;
+import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
 import com.baomidou.mybatisplus.core.injector.ISqlInjector;
 import com.baomidou.mybatisplus.core.metadata.GlobalConfiguration;
 
@@ -145,7 +145,7 @@ public class GlobalConfigUtils {
         GlobalConfiguration globalConfiguration = getGlobalConfig(configuration);
         ISqlInjector sqlInjector = globalConfiguration.getSqlInjector();
         if (sqlInjector == null) {
-            sqlInjector = new AutoSqlInjector();
+            sqlInjector = new DefaultSqlInjector();
             globalConfiguration.setSqlInjector(sqlInjector);
         }
         return sqlInjector;

+ 3 - 3
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/injector/LogicSqlInjector.java

@@ -22,12 +22,12 @@ package com.baomidou.mybatisplus.extension.injector;
 //import org.apache.ibatis.scripting.defaults.RawSqlSource;
 //
 //import com.baomidou.mybatisplus.core.enums.SqlMethod;
-//import com.baomidou.mybatisplus.core.injector.AutoSqlInjector;
+//import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
 //import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
 //import com.baomidou.mybatisplus.core.metadata.TableInfo;
 //import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 
-import com.baomidou.mybatisplus.core.injector.AutoSqlInjector;
+import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
 
 /**
  * <p>
@@ -38,7 +38,7 @@ import com.baomidou.mybatisplus.core.injector.AutoSqlInjector;
  * @author hubin willenfoo
  * @Date 2017-09-09
  */
-public class LogicSqlInjector extends AutoSqlInjector {
+public class LogicSqlInjector extends DefaultSqlInjector {
 //
 //    /**
 //     * 根据 ID 删除

+ 2 - 7
mybatis-plus-extension/src/test/java/com/baomidou/mybatisplus/extension/test/mysql/MySqlInjector.java

@@ -15,12 +15,7 @@
  */
 package com.baomidou.mybatisplus.extension.test.mysql;
 
-import org.apache.ibatis.builder.MapperBuilderAssistant;
-import org.apache.ibatis.mapping.SqlSource;
-import org.apache.ibatis.session.Configuration;
-
-import com.baomidou.mybatisplus.core.injector.AutoSqlInjector;
-import com.baomidou.mybatisplus.core.metadata.TableInfo;
+import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
 
 
 /**
@@ -31,7 +26,7 @@ import com.baomidou.mybatisplus.core.metadata.TableInfo;
  * @author hubin
  * @Date 2016-07-23
  */
-public class MySqlInjector extends AutoSqlInjector {
+public class MySqlInjector extends DefaultSqlInjector {
 
 //    @Override
 //    public void inject(Configuration configuration, MapperBuilderAssistant builderAssistant, Class<?> mapperClass,