spring boot整合pagehelper

这里介绍几种方式

  • 完全采用配置(重点介绍) 
  • 完全代码实现 

完全采用配置整合pagehelper

pom.xml




    4.0.0
    
    
        org.springframework.boot
        spring-boot-starter-parent
        1.5.1.RELEASE
    

    com.mes.cloud
    mes-cloud-starter
    jar
    
        1.8
    

    1.0-SNAPSHOT
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Camden.SR5
                pom
                import
            
             
            
                  org.springframework.boot
                  spring-boot-starter-web
            
            
            
                org.mybatis.spring.boot
                mybatis-spring-boot-starter
                1.3.1
            
            
            
                com.github.pagehelper
                pagehelper
                5.1.0
            
             
              
            
                com.github.pagehelper
                pagehelper-spring-boot-autoconfigure
                1.1.1
            
              
            
                com.github.pagehelper
                pagehelper-spring-boot-starter
                1.2.3
            
        

yml

#mybatis配置 第一种和第二种需要 第三种不需要
mybatis:
  #mapper.xml文件位置
  mapper-locations: classpath*:mapper/*.xml
  check-config-location: true
  #对应mapper的实体类
  type-aliases-package: com.zoo.cloud.**.dto

#pagehelper分页配置 第二种和第三种不需要 重点讲的第一种需要
pagehelper:
    helperDialect: mysql
    reasonable: true
    supportMethodsArguments: true
    params: count=countSql

采用代码实现

import java.util.Properties;

import org.apache.ibatis.plugin.Interceptor;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

import com.github.pagehelper.PageHelper;

import javax.sql.DataSource;


@Configuration
@ComponentScan
public class MyBatisConfig {


    /**
     *  第二种方式 在代码中指定pagehelper的配置
    */
    @Bean
    public PageHelper pageHelper() {
        PageHelper pageHelper = new PageHelper();
        Properties p = new Properties();
        p.setProperty("offsetAsPageNum", "true");
        p.setProperty("rowBoundsWithCount", "true");
        p.setProperty("reasonable", "true");
        p.setProperty("dialect", "mysql"); // 配置mysql数据库
        pageHelper.setProperties(p);
        return pageHelper;
    }



    @Autowired
    private DataSource dataSource;
    /**
     *  第三种方式 代码中指定xml和实体类的对应关系
    */
    @Bean(name = "sqlSessionFactory")
    public SqlSessionFactoryBean sqlSessionFactory(ApplicationContext applicationContext) throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        // sessionFactory.setPlugins(new Interceptor[]{new PageInterceptor()});
        sessionFactory.setMapperLocations(applicationContext.getResources("classpath*:mapper/*.xml"));
        org.apache.ibatis.session.Configuration configuration =  sessionFactory.getObject().getConfiguration();
        configuration.setMapUnderscoreToCamelCase(true);
        sessionFactory.setConfiguration(configuration);
        Interceptor[] interceptor =new PageHelper[1];
        interceptor[0] = pageHelper();
        sessionFactory.setPlugins(interceptor);
        return sessionFactory;
    }


}

其实整合pagehelper很简单,但是采用第一种方式的时候一定要特别注意依赖jar包的兼容性问题,不然会包很奇怪的问题,第二种和第三种就不存在这个问题。

你可能感兴趣的:(spring boot整合pagehelper)