Selaa lähdekoodia

Merge branch 'dev-ar' of https://git.oschina.net/baomidou/mybatis-plus.git into dev-ar

jobob 8 vuotta sitten
vanhempi
commit
003cc59937

+ 0 - 151
mybatis-plus/src/main/java/com/baomidou/mybatisplus/MybatisBaseBuilder.java

@@ -1,151 +0,0 @@
-/**
- *    Copyright 2009-2015 the original author or authors.
- *
- *    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
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- *    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;
-
-import org.apache.ibatis.builder.BuilderException;
-import org.apache.ibatis.mapping.ParameterMode;
-import org.apache.ibatis.mapping.ResultSetType;
-import org.apache.ibatis.type.JdbcType;
-import org.apache.ibatis.type.TypeAliasRegistry;
-import org.apache.ibatis.type.TypeHandler;
-import org.apache.ibatis.type.TypeHandlerRegistry;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.regex.Pattern;
-
-/**
- * @author Clinton Begin
- */
-public abstract class MybatisBaseBuilder {
-  protected final MybatisConfiguration configuration;
-  protected final TypeAliasRegistry typeAliasRegistry;
-  protected final TypeHandlerRegistry typeHandlerRegistry;
-
-  public MybatisBaseBuilder(MybatisConfiguration configuration) {
-    this.configuration = configuration;
-    this.typeAliasRegistry = this.configuration.getTypeAliasRegistry();
-    this.typeHandlerRegistry = this.configuration.getTypeHandlerRegistry();
-  }
-
-  public MybatisConfiguration getConfiguration() {
-    return configuration;
-  }
-
-  protected Pattern parseExpression(String regex, String defaultValue) {
-    return Pattern.compile(regex == null ? defaultValue : regex);
-  }
-
-  protected Boolean booleanValueOf(String value, Boolean defaultValue) {
-    return value == null ? defaultValue : Boolean.valueOf(value);
-  }
-
-  protected Integer integerValueOf(String value, Integer defaultValue) {
-    return value == null ? defaultValue : Integer.valueOf(value);
-  }
-
-  protected Set<String> stringSetValueOf(String value, String defaultValue) {
-    value = (value == null ? defaultValue : value);
-    return new HashSet<String>(Arrays.asList(value.split(",")));
-  }
-
-  protected JdbcType resolveJdbcType(String alias) {
-    if (alias == null) {
-      return null;
-    }
-    try {
-      return JdbcType.valueOf(alias);
-    } catch (IllegalArgumentException e) {
-      throw new BuilderException("Error resolving JdbcType. Cause: " + e, e);
-    }
-  }
-
-  protected ResultSetType resolveResultSetType(String alias) {
-    if (alias == null) {
-      return null;
-    }
-    try {
-      return ResultSetType.valueOf(alias);
-    } catch (IllegalArgumentException e) {
-      throw new BuilderException("Error resolving ResultSetType. Cause: " + e, e);
-    }
-  }
-
-  protected ParameterMode resolveParameterMode(String alias) {
-    if (alias == null) {
-      return null;
-    }
-    try {
-      return ParameterMode.valueOf(alias);
-    } catch (IllegalArgumentException e) {
-      throw new BuilderException("Error resolving ParameterMode. Cause: " + e, e);
-    }
-  }
-
-  protected Object createInstance(String alias) {
-    Class<?> clazz = resolveClass(alias);
-    if (clazz == null) {
-      return null;
-    }
-    try {
-      return resolveClass(alias).newInstance();
-    } catch (Exception e) {
-      throw new BuilderException("Error creating instance. Cause: " + e, e);
-    }
-  }
-
-  protected Class<?> resolveClass(String alias) {
-    if (alias == null) {
-      return null;
-    }
-    try {
-      return resolveAlias(alias);
-    } catch (Exception e) {
-      throw new BuilderException("Error resolving class. Cause: " + e, e);
-    }
-  }
-
-  protected TypeHandler<?> resolveTypeHandler(Class<?> javaType, String typeHandlerAlias) {
-    if (typeHandlerAlias == null) {
-      return null;
-    }
-    Class<?> type = resolveClass(typeHandlerAlias);
-    if (type != null && !TypeHandler.class.isAssignableFrom(type)) {
-      throw new BuilderException("Type " + type.getName() + " is not a valid TypeHandler because it does not implement TypeHandler interface");
-    }
-    @SuppressWarnings( "unchecked" ) // already verified it is a TypeHandler
-    Class<? extends TypeHandler<?>> typeHandlerType = (Class<? extends TypeHandler<?>>) type;
-    return resolveTypeHandler(javaType, typeHandlerType);
-  }
-
-  protected TypeHandler<?> resolveTypeHandler(Class<?> javaType, Class<? extends TypeHandler<?>> typeHandlerType) {
-    if (typeHandlerType == null) {
-      return null;
-    }
-    // javaType ignored for injected handlers see issue #746 for full detail
-    TypeHandler<?> handler = typeHandlerRegistry.getMappingTypeHandler(typeHandlerType);
-    if (handler == null) {
-      // not in registry, create a new one
-      handler = typeHandlerRegistry.getInstance(javaType, typeHandlerType);
-    }
-    return handler;
-  }
-
-  protected Class<?> resolveAlias(String alias) {
-    return typeAliasRegistry.resolveAlias(alias);
-  }
-}

+ 4 - 3
mybatis-plus/src/main/java/com/baomidou/mybatisplus/MybatisMapperAnnotationBuilder.java

@@ -64,6 +64,7 @@ import org.apache.ibatis.mapping.SqlSource;
 import org.apache.ibatis.mapping.StatementType;
 import org.apache.ibatis.reflection.TypeParameterResolver;
 import org.apache.ibatis.scripting.LanguageDriver;
+import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.session.ResultHandler;
 import org.apache.ibatis.session.RowBounds;
 import org.apache.ibatis.type.JdbcType;
@@ -101,11 +102,11 @@ public class MybatisMapperAnnotationBuilder extends MapperAnnotationBuilder {
     private final Set<Class<? extends Annotation>> sqlAnnotationTypes = new HashSet<Class<? extends Annotation>>();
     private final Set<Class<? extends Annotation>> sqlProviderAnnotationTypes = new HashSet<Class<? extends Annotation>>();
 
-    private MybatisConfiguration configuration;
+    private Configuration configuration;
     private MapperBuilderAssistant assistant;
     private Class<?> type;
 
-    public MybatisMapperAnnotationBuilder(MybatisConfiguration configuration, Class<?> type) {
+    public MybatisMapperAnnotationBuilder(Configuration configuration, Class<?> type) {
         super(configuration, type);
         String resource = type.getName().replace('.', '/') + ".java (best guess)";
         this.assistant = new MapperBuilderAssistant(configuration, resource);
@@ -192,7 +193,7 @@ public class MybatisMapperAnnotationBuilder extends MapperAnnotationBuilder {
                 flag = false;
             }
             if (inputStream != null) {
-                MybatisXMLMapperBuilder xmlParser = new MybatisXMLMapperBuilder(inputStream, (MybatisConfiguration) assistant.getConfiguration(), xmlResource,
+                MybatisXMLMapperBuilder xmlParser = new MybatisXMLMapperBuilder(inputStream, assistant.getConfiguration(), xmlResource,
                         configuration.getSqlFragments(), type.getName());
                 xmlParser.parse();
             }

+ 3 - 2
mybatis-plus/src/main/java/com/baomidou/mybatisplus/MybatisMapperRegistry.java

@@ -18,6 +18,7 @@ package com.baomidou.mybatisplus;
 import org.apache.ibatis.binding.BindingException;
 import org.apache.ibatis.binding.MapperProxyFactory;
 import org.apache.ibatis.binding.MapperRegistry;
+import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.session.SqlSession;
 
 import java.util.Collection;
@@ -35,10 +36,10 @@ import java.util.Map;
  */
 public class MybatisMapperRegistry extends MapperRegistry {
 
-	private final MybatisConfiguration config;
+	private final Configuration config;
 	private final Map<Class<?>, MapperProxyFactory<?>> knownMappers = new HashMap<Class<?>, MapperProxyFactory<?>>();
 
-	public MybatisMapperRegistry(MybatisConfiguration config) {
+	public MybatisMapperRegistry(Configuration config) {
 		super(config);
 		this.config = config;
 	}

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

@@ -381,7 +381,7 @@ public class MybatisXMLConfigBuilder extends BaseBuilder {
                 ErrorContext.instance().resource(resource);
                 InputStream inputStream = Resources.getResourceAsStream(resource);
                 //TODO
-                MybatisXMLMapperBuilder mapperParser = new MybatisXMLMapperBuilder(inputStream, (MybatisConfiguration) configuration, resource,
+                MybatisXMLMapperBuilder mapperParser = new MybatisXMLMapperBuilder(inputStream, configuration, resource,
                         configuration.getSqlFragments());
                 mapperParser.parse();
             }

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

@@ -16,6 +16,7 @@
 package com.baomidou.mybatisplus;
 
 import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.builder.BaseBuilder;
 import org.apache.ibatis.builder.BuilderException;
 import org.apache.ibatis.builder.CacheRefResolver;
 import org.apache.ibatis.builder.IncompleteElementException;
@@ -34,6 +35,7 @@ import org.apache.ibatis.mapping.ResultMap;
 import org.apache.ibatis.mapping.ResultMapping;
 import org.apache.ibatis.parsing.XNode;
 import org.apache.ibatis.parsing.XPathParser;
+import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.type.JdbcType;
 import org.apache.ibatis.type.TypeHandler;
 
@@ -59,7 +61,7 @@ import java.util.Properties;
  * @author Clinton Begin hubin
  * @Date 2016-06-13
  */
-public class MybatisXMLMapperBuilder extends MybatisBaseBuilder {
+public class MybatisXMLMapperBuilder extends BaseBuilder {
 
 	private XPathParser parser;
 	private MapperBuilderAssistant builderAssistant;
@@ -67,32 +69,32 @@ public class MybatisXMLMapperBuilder extends MybatisBaseBuilder {
 	private String resource;
 
 	@Deprecated
-	public MybatisXMLMapperBuilder(Reader reader, MybatisConfiguration configuration, String resource,
-			Map<String, XNode> sqlFragments, String namespace) {
+	public MybatisXMLMapperBuilder(Reader reader, Configuration configuration, String resource,
+								   Map<String, XNode> sqlFragments, String namespace) {
 		this(reader, configuration, resource, sqlFragments);
 		this.builderAssistant.setCurrentNamespace(namespace);
 	}
 
 	@Deprecated
-	public MybatisXMLMapperBuilder(Reader reader, MybatisConfiguration configuration, String resource,
+	public MybatisXMLMapperBuilder(Reader reader, Configuration configuration, String resource,
 			Map<String, XNode> sqlFragments) {
 		this(new XPathParser(reader, true, configuration.getVariables(), new XMLMapperEntityResolver()), configuration,
 				resource, sqlFragments);
 	}
 
-	public MybatisXMLMapperBuilder(InputStream inputStream, MybatisConfiguration configuration, String resource,
+	public MybatisXMLMapperBuilder(InputStream inputStream, Configuration configuration, String resource,
 			Map<String, XNode> sqlFragments, String namespace) {
 		this(inputStream, configuration, resource, sqlFragments);
 		this.builderAssistant.setCurrentNamespace(namespace);
 	}
 
-	public MybatisXMLMapperBuilder(InputStream inputStream, MybatisConfiguration configuration, String resource,
+	public MybatisXMLMapperBuilder(InputStream inputStream, Configuration configuration, String resource,
 			Map<String, XNode> sqlFragments) {
 		this(new XPathParser(inputStream, true, configuration.getVariables(), new XMLMapperEntityResolver()),
 				configuration, resource, sqlFragments);
 	}
 
-	private MybatisXMLMapperBuilder(XPathParser parser, MybatisConfiguration configuration, String resource,
+	private MybatisXMLMapperBuilder(XPathParser parser, Configuration configuration, String resource,
 			Map<String, XNode> sqlFragments) {
 		super(configuration);
 		this.builderAssistant = new MapperBuilderAssistant(configuration, resource);

+ 1 - 1
mybatis-plus/src/main/java/com/baomidou/mybatisplus/spring/MybatisSqlSessionFactoryBean.java

@@ -579,7 +579,7 @@ public class MybatisSqlSessionFactoryBean
                 try {
                     // TODO
                     MybatisXMLMapperBuilder xmlMapperBuilder = new MybatisXMLMapperBuilder(
-                            mapperLocation.getInputStream(), (MybatisConfiguration) configuration, mapperLocation.toString(),
+                            mapperLocation.getInputStream(), configuration, mapperLocation.toString(),
                             configuration.getSqlFragments());
                     xmlMapperBuilder.parse();
                 } catch (Exception e) {