配置SqlSessionFactory
/**
* Mybatis & Mapper & PageHelper 配置
*/
@Configuration
public class MybatisConfigurer {
@Bean
public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) throws Exception {
SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
factory.setDataSource(dataSource);
factory.setTypeAliasesPackage(MODEL_PACKAGE);
//配置分頁(yè)插件屏镊,詳情請(qǐng)查閱官方文檔
PageHelper pageHelper = new PageHelper();
Properties properties = new Properties();
properties.setProperty("pageSizeZero", "true");//分頁(yè)尺寸為0時(shí)查詢(xún)所有紀(jì)錄不再執(zhí)行分頁(yè)
properties.setProperty("reasonable", "true");//頁(yè)碼<=0 查詢(xún)第一頁(yè)依疼,頁(yè)碼>=總頁(yè)數(shù)查詢(xún)最后一頁(yè)
properties.setProperty("supportMethodsArguments", "true");//支持通過(guò) Mapper 接口參數(shù)來(lái)傳遞分頁(yè)參數(shù)
pageHelper.setProperties(properties);
//添加插件
factory.setPlugins(new Interceptor[]{pageHelper});
//駝峰命名
factory.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
//添加X(jué)ML目錄
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
factory.setMapperLocations(resolver.getResources("classpath:mapper/*.xml"));
return factory.getObject();
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
mapperScannerConfigurer.setBasePackage(MAPPER_PACKAGE);
//配置通用Mapper,詳情請(qǐng)查閱官方文檔
Properties properties = new Properties();
properties.setProperty("mappers", MAPPER_INTERFACE_REFERENCE);
properties.setProperty("notEmpty", "false");//insert而芥、update是否判斷字符串類(lèi)型!='' 即 test="str != null"表達(dá)式內(nèi)是否追加 and str != ''
properties.setProperty("IDENTITY", "MYSQL");
mapperScannerConfigurer.setProperties(properties);
return mapperScannerConfigurer;
}
}