1. 配置pom.xml
<!--mybatis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version> </dependency> <!--分页插件--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.2</version> </dependency>
2.编辑javaconfig文件
import com.github.pagehelper.PageInterceptor; import org.apache.ibatis.plugin.Interceptor; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder; 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 org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.mybatis.spring.mapper.MapperScannerConfigurer; import javax.sql.DataSource; import java.util.Properties; /** * Created by zmc on.2017年12月22日 14:58:34 */ @Configuration @MapperScan(basePackages = "com.my.boot.test.mapper", sqlSessionTemplateRef = "mybatisMasterSqlSessionTemplate") public class MybatisDataSourceConfig { @Bean public DataSourceTransactionManager transactionManager(DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } @Bean(name = "mybatisMasterDataSource") @ConfigurationProperties(prefix = "datasource") public DataSource mybatisMasterDataSource() { // return new DriverManagerDataSource("jdbc:mysql://localhost:3306/test","root","root"); return DataSourceBuilder.create().build(); } @Bean(name = "mybatisMasterSqlSessionFactory") public SqlSessionFactory mybatisMasterSqlSessionFactory(@Qualifier("mybatisMasterDataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:com.mybatis.mapper/*.xml")); // 设置MyBatis分页插件 PageInterceptor pageInterceptor = this.initPageInterceptor(); bean.setPlugins(new Interceptor[]{pageInterceptor}); return bean.getObject(); } @Bean public MapperScannerConfigurer mapperScannerConfigurer(){ MapperScannerConfigurer mScannerConfigurer = new MapperScannerConfigurer(); mScannerConfigurer.setSqlSessionFactoryBeanName("mybatisMasterSqlSessionFactory"); mScannerConfigurer.setBasePackage("com.my.boot.test.entity"); mScannerConfigurer.setBasePackage("com.my.boot.test.mapper"); return mScannerConfigurer; } @Bean(name = "mybatisMasterTransactionManager") public DataSourceTransactionManager mybatisMasterTransactionManager(@Qualifier("mybatisMasterDataSource") DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } @Bean(name = "mybatisMasterSqlSessionTemplate") public SqlSessionTemplate mybatisMasterSqlSessionTemplate(@Qualifier("mybatisMasterSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { return new SqlSessionTemplate(sqlSessionFactory); } public PageInterceptor initPageInterceptor(){ PageInterceptor pageInterceptor = new PageInterceptor(); Properties properties = new Properties(); properties.setProperty("helperDialect", "mysql"); properties.setProperty("offsetAsPageNum", "true"); properties.setProperty("rowBoundsWithCount", "true"); pageInterceptor.setProperties(properties); return pageInterceptor; } }