版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mr_raptor/article/details/79673222
网上很多资料都是老旧的资料
两种方式添加SpringBoot插件:
第一种:
1. build.gradle
compile 'com.github.pagehelper:pagehelper:5.0.0'
2. 创建MybatisConfig.java
package org.openmore.coursemore.configuration;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInterceptor;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import tk.mybatis.spring.mapper.MapperScannerConfigurer;
import java.beans.PropertyVetoException;
import java.util.Properties;
/**
* Created by michaeltang on 2018/3/22.
*/
@Configuration
public class MyBatisConfig {//implements TransactionManagementConfigurer {
@Autowired
private Environment env;
@Bean
public ComboPooledDataSource dataSource() {
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setMinPoolSize(Integer.parseInt(env.getProperty("spring.datasource.min-pool-size")));
dataSource.setMaxPoolSize(Integer.parseInt(env.getProperty("spring.datasource.max-pool-size")));
dataSource.setMaxIdleTime(Integer.parseInt(env.getProperty("spring.datasource.max-idle-time")));
dataSource.setJdbcUrl(env.getProperty("spring.datasource.url"));
dataSource.setPassword(env.getProperty("spring.datasource.password"));
dataSource.setUser(env.getProperty("spring.datasource.username"));
try {
dataSource.setDriverClass(env.getProperty("spring.datasource.driver"));
} catch (PropertyVetoException e) {
e.printStackTrace();
}
return dataSource;
}
@Bean(name = "sqlSessionFactory")
public SqlSessionFactory sqlSessionFactory() {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource());
bean.setTypeAliasesPackage("org.openmore.coursemore.entity");
//分页插件
PageInterceptor iterceptor = new PageInterceptor();
Properties properties = new Properties();
properties.setProperty("reasonable", "true");
properties.setProperty("supportMethodsArguments", "true");
properties.setProperty("returnPageInfo", "check");
properties.setProperty("params", "count=countSql");
iterceptor.setProperties(properties);
PageInterceptor[] interceptors = new PageInterceptor[]{iterceptor};
//添加插件
bean.setPlugins(interceptors);
// 也可以在mybatis-config.xml里添加插件
//添加XML目录
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
try {
bean.setMapperLocations(resolver.getResources("classpath:mapper/*.xml"));
bean.setConfigLocation(resolver.getResource("classpath:mybatis-config.xml"));
return bean.getObject();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
@Bean
public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
mapperScannerConfigurer.setBasePackage("org.openmore.coursemore.dao");
return mapperScannerConfigurer;
}
}
第二种:配置到mybatis-config文件里
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 配置全局属性 -->
<settings>
<!-- 使用jdbc的getGeneratedKeys获取数据库自增主键值 -->
<setting name="useGeneratedKeys" value="true"/>
<!-- 使用列别名替换列名 默认:true -->
<setting name="useColumnLabel" value="true"/>
<!-- 开启驼峰命名转换:Table{create_time} -> Entity{createTime} -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!--不要添加这句话,5.0.0开始自动识别mysql <property name="dialect" value="mysql"/>-->
</plugin>
</plugins>
</configuration>
以上