六、mybatis分页插件集成

本文基于上一篇“集成mybatis”内容

1、添加依赖

<!-- mybatis-pageHelper -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.1.0</version>
        </dependency>

 

2、修改配置

package com.biniu.config;

import com.alibaba.druid.pool.DruidDataSource;
import com.github.pagehelper.PageHelper;
import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
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 javax.sql.DataSource;
import java.util.Properties;

/**
 * @author lay
 * @date 2018/4/15.
 * @time 15:06
 */
@Configuration
@MapperScan("com.biniu.dao")
public class MyBatisConfig {
    @Bean
    public SqlSessionFactory sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        // 数据源
        bean.setDataSource(dataSource());
        // sql文件
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
        // 分页插件
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        // 禁用分页参数合理化
        properties.setProperty("reasonable", "false");
        properties.setProperty("supportMethodsArguments", "true");
        properties.setProperty("returnPageInfo", "check");
        properties.setProperty("params", "count=countSql");
        properties.setProperty("helperDialect", "mysql");
        pageHelper.setProperties(properties);
        bean.setPlugins(new Interceptor[]{pageHelper});
        return bean.getObject();
    }

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() {
        return new DruidDataSource();
    }
}

 

3、使用示例

public Object listUser() {
        PageHelper.startPage(1, 10);
        List<Object> users = userDao.listUser();
        PageInfo<Object> pageInfo = new PageInfo<>(users);
        return pageInfo;
    }

 

posted @ 2018-04-15 15:55  __lay  阅读(188)  评论(0编辑  收藏  举报