package com.moral.api.config.mybatis;
|
|
import com.baomidou.mybatisplus.annotation.DbType;
|
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
|
import com.baomidou.mybatisplus.core.MybatisConfiguration;
|
import com.baomidou.mybatisplus.extension.parsers.DynamicTableNameParser;
|
import com.baomidou.mybatisplus.extension.parsers.ITableNameHandler;
|
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.handler.TableNameHandler;
|
import com.baomidou.mybatisplus.extension.plugins.inner.DynamicTableNameInnerInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
|
import com.moral.api.entity.HistoryFiveMinutely;
|
import com.moral.api.mapper.HistoryFiveMinutelyMapper;
|
import com.moral.api.service.HistorySecondUavService;
|
import com.moral.api.service.impl.HistorySecondUavServiceImpl;
|
import com.moral.api.service.impl.OrganizationServiceImpl;
|
import org.apache.ibatis.reflection.MetaObject;
|
import org.apache.ibatis.session.SqlSessionFactory;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Primary;
|
|
import javax.sql.DataSource;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
|
/*@Configuration*/
|
public class MybatisPlusConfig {
|
|
|
|
@Bean
|
public MybatisPlusInterceptor mybatisPlusInterceptor() {
|
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
|
//分页插件
|
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
|
|
// 动态表名SQL解析器
|
DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor();
|
HashMap<String, TableNameHandler> map = new HashMap<>();
|
map.put("history_hourly", (sql, tableName) -> tableName+this.tableName.get());
|
map.put("history_five_minutely", (sql, tableName) -> tableName+this.tableName.get());
|
|
dynamicTableNameInnerInterceptor.setTableNameHandlerMap(map);
|
interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);
|
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
|
return interceptor;
|
}
|
@Bean
|
public ConfigurationCustomizer configurationCustomizer() {
|
return configuration -> configuration.setUseDeprecatedExecutor(false);
|
}
|
|
|
public static ThreadLocal<String> tableName = new ThreadLocal<>();
|
|
}
|