Java tutorial
/** * Copyright (c) 2011-2020, hubin (jobob@qq.com). * * 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.mybatisX.core; import java.util.Set; import java.util.concurrent.ConcurrentSkipListSet; import org.apache.ibatis.binding.MapperRegistry; import org.apache.ibatis.logging.Log; import org.apache.ibatis.logging.LogFactory; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.session.Configuration; import org.apache.ibatis.session.SqlSession; import com.mybatisX.annotations.FieldStrategy; import com.mybatisX.mapper.AutoSqlInjector; import com.mybatisX.mapper.DBType; import com.mybatisX.mapper.IMetaObjectHandler; import com.mybatisX.mapper.ISqlInjector; /** * <p> * replace default Configuration class * </p> * <p> * Caratacus 2016/9/25 replace mapperRegistry * </p> * * @author hubin * @Date 2016-01-23 */ public class MybatisConfiguration extends Configuration { private static final Log logger = LogFactory.getLog(MybatisConfiguration.class); /* * ? MySql */ public static DBType DB_TYPE = DBType.MYSQL; /* * ??? false */ public static boolean DB_COLUMN_UNDERLINE = false; /* * SQL ISqlInjector AutoSqlInjector */ public static ISqlInjector SQL_INJECTOR = new AutoSqlInjector(); /* * Mapper */ public final MybatisMapperRegistry mybatisMapperRegistry = new MybatisMapperRegistry(this); /** * */ public static Set<String> MAPPER_REGISTRY_CACHE = new ConcurrentSkipListSet<String>(); /* * */ public static IMetaObjectHandler META_OBJECT_HANDLER = null; /* * ? */ public static FieldStrategy FIELD_STRATEGY = FieldStrategy.NOT_NULL; /* * ?mapper */ public static boolean IS_REFRESH = false; /** * ? */ public MybatisConfiguration() { System.err.println("mybatis-plus init success."); } /** * <p> * MybatisPlus SQL ? * </p> * 1?XMLSQL<br> * 2?sqlProviderSQL<br> * 3?xmlSql sqlProvider???SQL<br> * <br> * ?SQLxmlSql > sqlProvider > curdSql <br> */ @Override public void addMappedStatement(MappedStatement ms) { logger.debug(" addMappedStatement: " + ms.getId()); if (IS_REFRESH) { /* * ?? XML ??? ? */ this.mappedStatements.remove(ms.getId()); } else { if (this.mappedStatements.containsKey(ms.getId())) { /* * xml mapperSqlProvider? */ logger.error("mapper[" + ms.getId() + "] is ignored, because it's exists, maybe from xml file"); return; } } super.addMappedStatement(ms); } @Override public void setDefaultScriptingLanguage(Class<?> driver) { if (driver == null) { /* driver */ driver = MybatisXMLLanguageDriver.class; } super.setDefaultScriptingLanguage(driver); } @Override public MapperRegistry getMapperRegistry() { return mybatisMapperRegistry; } @Override public <T> void addMapper(Class<T> type) { mybatisMapperRegistry.addMapper(type); } @Override public void addMappers(String packageName, Class<?> superType) { mybatisMapperRegistry.addMappers(packageName, superType); } @Override public void addMappers(String packageName) { mybatisMapperRegistry.addMappers(packageName); } @Override public <T> T getMapper(Class<T> type, SqlSession sqlSession) { return mybatisMapperRegistry.getMapper(type, sqlSession); } @Override public boolean hasMapper(Class<?> type) { return mybatisMapperRegistry.hasMapper(type); } }