springboot和mybatis集成分页插件

MyBatis提供了拦截器接口,我们可以实现自己的拦截器,将其作为一个plugin装入到SqlSessionFactory中。
首先要说的是,Spring在依赖注入bean的时候,会把所有实现MyBatis中Interceptor接口的所有类都注入到SqlSessionFactory中,作为plugin存在。既然如此,我们集成一个plugin便很简单了,只需要使用@Bean创建PageHelper对象即可。

创新互联是一家专业从事网站制作、成都做网站、网页设计的品牌网络公司。如今是成都地区具影响力的网站设计公司,作为专业的成都网站建设公司,创新互联依托强大的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、营销型网站建设及网站设计开发服务!

1、添加pom依赖


 com.github.pagehelper
 pagehelper
 4.1.0

2、MyBatisConfiguration.java类配置

package com.example.mybatis;

import java.util.Properties;

import javax.sql.DataSource;

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.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.annotation.TransactionManagementConfigurer;

import com.github.pagehelper.PageHelper;

@Configuration
//加上这个注解,使得支持事务
@EnableTransactionManagement
public class MyBatisConfig implements TransactionManagementConfigurer {
 @Autowired
 private DataSource dataSource;
 
 @Override
 public PlatformTransactionManager annotationDrivenTransactionManager() {
  return new DataSourceTransactionManager(dataSource);
 }
 
 @Bean(name = "sqlSessionFactory")
 public SqlSessionFactory sqlSessionFactoryBean(PageHelper pageHelper) {
  SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
  bean.setDataSource(dataSource);

   //自定义数据库配置的时候,需要将pageHelper的bean注入到Plugins中,如果采用系统默认的数据库配置,则只需要定义pageHelper的bean,会自动注入。  

   bean.setPlugins(new Interceptor[] { pageHelper });
  try {
   return bean.getObject();
  } catch (Exception e) {
   e.printStackTrace();
   throw new RuntimeException(e);
  }
 }

 @Bean
 public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
  return new SqlSessionTemplate(sqlSessionFactory);
 }
 
 @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");
  pageHelper.setProperties(p);
  return pageHelper;
 }
}

3、分页查询测试

 @RequestMapping("/likename")
 public List likeName(@RequestParam String name){
  PageHelper.startPage(1, 1);
  return stuMapper.likeName(name);
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。


当前文章:springboot和mybatis集成分页插件
URL标题:http://scyanting.com/article/posspe.html