import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.extension.incrementer.H2KeyGenerator;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.apache.ibatis.logging.stdout.StdOutImpl;
import org.apache.ibatis.plugin.Interceptor;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
import java.io.IOException;
/**
- @description:
- @author: lingwanxian
- @date: 2022/3/4 17:58
/
@Configuration
public class MybatisPlusConfig {
/*-
mybatis-plus分页插件
-
文档:http://mp.baomidou.com
*/
// @Bean
// public MybatisPlusInterceptor mybatisPlusInterceptor() {
// MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
// return interceptor;
// }@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
PaginationInnerInterceptor innerInterceptor=new PaginationInnerInterceptor();
innerInterceptor.setDbType(DbType.MYSQL);
innerInterceptor.setOverflow(true);
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
interceptor.addInnerInterceptor(innerInterceptor);
return interceptor;
}@Bean
public ConfigurationCustomizer configurationCustomizer(){
return mybatisConfiguration -> mybatisConfiguration.setUseGeneratedShortKey(false);
}/**
- 相当于顶部的:
- {@code @MapperScan(“com.baomidou.springboot.mapper*”)}
- 这里可以扩展,比如使用配置文件来配置扫描Mapper的路径
/
@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer scannerConfigurer = new MapperScannerConfigurer();
scannerConfigurer.setBasePackage("com.analysis.dao.mapper");
return scannerConfigurer;
}
@Bean
public H2KeyGenerator getH2KeyGenerator() {
return new H2KeyGenerator();
}//mybatis-plus里面这配置比较重要
@Bean
@ConfigurationProperties(prefix = “mybatis”)
public MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean(DataSource dataSource, MybatisPlusInterceptor mybatisPlusInterceptor) throws IOException {
MybatisSqlSessionFactoryBean sessionFactoryBean = new MybatisSqlSessionFactoryBean();
MybatisConfiguration configuration = new MybatisConfiguration();
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
configuration.setMapUnderscoreToCamelCase(true); //下划线转骆驼
Interceptor[] plugins = {mybatisPlusInterceptor};sessionFactoryBean.setPlugins(plugins); sessionFactoryBean.setDataSource(dataSource); sessionFactoryBean.setConfiguration(configuration); // 配置打印sql语句 configuration.setLogImpl(StdOutImpl.class); sessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:mapper/*Mapper.xml")); return sessionFactoryBean;
}
}
-