springboot整合mybatis拦截器分页

Posted Gendan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot整合mybatis拦截器分页相关的知识,希望对你有一定的参考价值。

pom.xml

    <!-- 引入分页插件 -->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>5.2.0</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.21</version>
    </dependency>

    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.2</version>
    </dependency>
     <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
    </dependency>

yml
spring:
application:

name: spring-cloud-dynamic

datasource:

#类型
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/f2f?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 
initial-size: 2
max-idle: 10
min-idle: 1
max-wait: 60000
max-active: 20 #最大空闲连接数
#多久进行一次检测,检测需要关闭的空闲连接
time-between-eviction-tuns-millis: 60000

MybatisConfig
/**

  • @author lanys
  • @Description:
  • @date 23/7/2021 下午8:38
    */

@Configuration
@EnableTransactionManagement
@PropertySource(value = "classpath:application.yml", ignoreResourceNotFound = true)
public class MybatisConfig implements TransactionManagementConfigurer {

@Value("${mybatis.mapper-locations}")
private String mapper;
@Value("${mybatis.type-aliases-package}")
private String aliases;
@Autowired
private DataSource dataSource;
@Bean(name = "sqlSessionFactory")
public SqlSessionFactory sqlSessionFactory() throws Exception {
    SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
    // 设置数据源
    bean.setDataSource(dataSource);
    // 设置xml
    bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapper));
    // 设置别名
    bean.setTypeAliasesPackage(aliases);
    // 添加分页插件
    bean.setPlugins(new Interceptor[]{pageInterceptor()});
    bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
    return bean.getObject();
}
/**
 * 分页拦截器
 * @return
 */
private PageInterceptor pageInterceptor() {
    PageInterceptor pageInterceptor = new PageInterceptor();
    // 详见 com.github.pagehelper.page.PageParams
    Properties p = new Properties();
    // RowBounds是否进行count查询[利率期货](https://www.gendan5.com/ff/if.html) - 默认不查询
    p.setProperty("rowBoundsWithCount", "true");
    // 当设置为true的时候,如果page size设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果
    p.setProperty("pageSizeZero", "true");
    // 分页合理化
    p.setProperty("reasonable", "false");
    // 是否支持接口参数来传递分页参数,默认false
    p.setProperty("supportMethodsArguments", "true");
    // 设置数据库方言 , 也可以不设置,会动态获取
    p.setProperty("helperDialect", "mysql");
    pageInterceptor.setProperties(p);
    return pageInterceptor;
}
@Override
public PlatformTransactionManager annotationDrivenTransactionManager() {
    return new DataSourceTransactionManager(dataSource);
}

}

以上是关于springboot整合mybatis拦截器分页的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot mybatis

Spring boot mybatis

Spring boot mybatis

Spring boot mybatis

springboot mybatis 分页整合

SpringBoot整合mybatis使用pageHelper插件进行分页操作