|
|
|
@ -4,8 +4,10 @@ import com.github.pagehelper.PageHelper; |
|
|
|
|
import org.apache.ibatis.plugin.Interceptor; |
|
|
|
|
import org.apache.ibatis.session.SqlSessionFactory; |
|
|
|
|
import org.mybatis.spring.SqlSessionFactoryBean; |
|
|
|
|
import org.springframework.beans.factory.annotation.Qualifier; |
|
|
|
|
import org.springframework.boot.autoconfigure.AutoConfigureAfter; |
|
|
|
|
import org.springframework.context.annotation.Bean; |
|
|
|
|
import org.springframework.context.annotation.Conditional; |
|
|
|
|
import org.springframework.context.annotation.Configuration; |
|
|
|
|
import org.springframework.core.io.support.PathMatchingResourcePatternResolver; |
|
|
|
|
import org.springframework.core.io.support.ResourcePatternResolver; |
|
|
|
@ -22,46 +24,40 @@ import static com.company.project.core.ProjectConstant.*; |
|
|
|
|
*/ |
|
|
|
|
@Configuration |
|
|
|
|
public class MybatisConfigurer { |
|
|
|
|
@Resource |
|
|
|
|
private DataSource dataSource; |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public SqlSessionFactory sqlSessionFactoryBean() throws Exception { |
|
|
|
|
SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); |
|
|
|
|
bean.setDataSource(dataSource); |
|
|
|
|
bean.setTypeAliasesPackage(MODEL_PACKAGE); |
|
|
|
|
public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) throws Exception { |
|
|
|
|
SqlSessionFactoryBean factory = new SqlSessionFactoryBean(); |
|
|
|
|
factory.setDataSource(dataSource); |
|
|
|
|
factory.setTypeAliasesPackage(MODEL_PACKAGE); |
|
|
|
|
|
|
|
|
|
//分页插件
|
|
|
|
|
//配置分页插件,详情请查阅官方文档
|
|
|
|
|
PageHelper pageHelper = new PageHelper(); |
|
|
|
|
Properties properties = new Properties(); |
|
|
|
|
properties.setProperty("reasonable", "true"); |
|
|
|
|
properties.setProperty("supportMethodsArguments", "true"); |
|
|
|
|
properties.setProperty("returnPageInfo", "check"); |
|
|
|
|
properties.setProperty("params", "count=countSql"); |
|
|
|
|
properties.setProperty("pageSizeZero", "true");//分页尺寸为0时查询所有纪录不再执行分页
|
|
|
|
|
properties.setProperty("reasonable", "true");//页码<=0 查询第一页,页码>=总页数查询最后一页
|
|
|
|
|
properties.setProperty("supportMethodsArguments", "true");//支持通过 Mapper 接口参数来传递分页参数
|
|
|
|
|
pageHelper.setProperties(properties); |
|
|
|
|
|
|
|
|
|
//添加插件
|
|
|
|
|
bean.setPlugins(new Interceptor[]{pageHelper}); |
|
|
|
|
factory.setPlugins(new Interceptor[]{pageHelper}); |
|
|
|
|
|
|
|
|
|
//添加XML目录
|
|
|
|
|
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); |
|
|
|
|
bean.setMapperLocations(resolver.getResources("classpath:mapper/*.xml")); |
|
|
|
|
return bean.getObject(); |
|
|
|
|
factory.setMapperLocations(resolver.getResources("classpath:mapper/*.xml")); |
|
|
|
|
return factory.getObject(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Configuration |
|
|
|
|
@AutoConfigureAfter(MybatisConfigurer.class) |
|
|
|
|
public static class MyBatisMapperScannerConfigurer { |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public MapperScannerConfigurer mapperScannerConfigurer() { |
|
|
|
|
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer(); |
|
|
|
|
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean"); |
|
|
|
|
mapperScannerConfigurer.setBasePackage(MAPPER_PACKAGE); |
|
|
|
|
//配置通用mappers
|
|
|
|
|
|
|
|
|
|
//配置通用Mapper,详情请查阅官方文档
|
|
|
|
|
Properties properties = new Properties(); |
|
|
|
|
properties.setProperty("mappers", MAPPER_INTERFACE_REFERENCE); |
|
|
|
|
properties.setProperty("notEmpty", "false"); |
|
|
|
|
properties.setProperty("notEmpty", "false");//insert、update是否判断字符串类型!='' 即 test="str != null"表达式内是否追加 and str != ''
|
|
|
|
|
properties.setProperty("IDENTITY", "MYSQL"); |
|
|
|
|
mapperScannerConfigurer.setProperties(properties); |
|
|
|
|
|
|
|
|
@ -69,5 +65,4 @@ public class MybatisConfigurer { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|