MybatisConfigurer.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.api.base.config;
  2. import com.github.pagehelper.PageInterceptor;
  3. import org.apache.ibatis.plugin.Interceptor;
  4. import org.apache.ibatis.session.SqlSessionFactory;
  5. import org.mybatis.spring.SqlSessionFactoryBean;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. import org.springframework.context.annotation.Bean;
  9. import org.springframework.context.annotation.Configuration;
  10. import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
  11. import org.springframework.core.io.support.ResourcePatternResolver;
  12. import tk.mybatis.spring.mapper.MapperScannerConfigurer;
  13. import javax.sql.DataSource;
  14. import java.util.Properties;
  15. import static com.api.base.config.ProjectConstant.*;
  16. /**
  17. * Mybatis & Mapper & PageHelper 配置
  18. */
  19. @Configuration
  20. public class MybatisConfigurer {
  21. Logger logger = LoggerFactory.getLogger(this.getClass());
  22. @Bean
  23. public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) throws Exception {
  24. SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
  25. org.apache.ibatis.session.Configuration configuration =new org.apache.ibatis.session.Configuration();
  26. configuration.setCallSettersOnNulls(true);
  27. factory.setDataSource(dataSource);
  28. factory.setConfiguration(configuration);
  29. factory.setTypeAliasesPackage(MODEL_PACKAGE);
  30. //配置分页插件,详情请查阅官方文档
  31. PageInterceptor pageInterceptor = new PageInterceptor();
  32. Properties properties = new Properties();
  33. pageInterceptor.setProperties(properties);
  34. //添加插件
  35. factory.setPlugins(new Interceptor[]{pageInterceptor});
  36. //添加XML目录
  37. ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
  38. factory.setMapperLocations(resolver.getResources("classpath*:com/api/**/mapper/*.xml"));
  39. return factory.getObject();
  40. }
  41. @Bean
  42. public MapperScannerConfigurer mapperScannerConfigurer() {
  43. MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
  44. mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
  45. mapperScannerConfigurer.setBasePackage(MAPPER_PACKAGE);
  46. //配置通用Mapper,详情请查阅官方文档
  47. Properties properties = new Properties();
  48. properties.setProperty("mappers", MAPPER_INTERFACE_REFERENCE);
  49. properties.setProperty("notEmpty", "false");//insert、update是否判断字符串类型!='' 即 test="str != null"表达式内是否追加 and str != ''
  50. properties.setProperty("IDENTITY", "MYSQL");
  51. mapperScannerConfigurer.setProperties(properties);
  52. return mapperScannerConfigurer;
  53. }
  54. }