1.POM文件
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.1</version>
</dependency>
2.写配置类
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
DataSource dataSource;
@Bean(name = "sqlSessionFactory")
public SqlSessionFactory sqlSessionFactoryBean() {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
PageHelper pageHelper = new PageHelper();
Properties props = new Properties();
//分页参数合理化,个人建议用默认的false
props.setProperty("reasonable", "true");
props.setProperty("supportMethodsArguments", "true");
props.setProperty("returnPageInfo", "check");
props.setProperty("params", "count=countSql");
pageHelper.setProperties(props);
bean.setPlugins(new Interceptor[] { pageHelper });
//如果spring boot的sql语句是在xml里,则需要加下面两行代码
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
bean.setMapperLocations(resolver.getResources("classpath:com/xx/xx/xx/*.xml"));
//两行代码结束,请注意,如果此处加这两行代码,那么application.properties文件中不要再配置mybatis相关配置了,比如setMapperLocations这些属性什么的,此处不加这两行代码,才需要在properties文件中配置
try {
return bean.getObject();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Bean
public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
@Bean
@Override
public PlatformTransactionManager annotationDrivenTransactionManager() {
return new DataSourceTransactionManager(dataSource);
}
}
3.Controller中写法
@ResponseBody
@PostMapping("/list")
public List<Entity> getLastData() {
//调用startPage方法
//注意第一个参数,不能是0,否则无法查到数据
PageHelper.startPage(1, 5, true, false);//表示当前第1页,每页五条,假如一共11页,那么超过11页,数据则显示空
PageHelper.startPage(1, 5);//表示当前第1页,每页五条,假如一共11页,那么超过11页,数据则显还是第11页
//这里直接写查询方法即可,别的不需要管
List<Entity> datas = mapper.findLastData(userId);
//查询完毕之后
Page<Entity> pageMsg = (Page<Entity>) datas;
//如果不额外配置上面的mybatisConfig类,下面写法也可以
PageInfo<Entity> pageMsg = new PageInfo<>(datas);
//到此,pageMsg上述两种都可以的
pageMsg.getTotal();
pageMsg.getPages();
pageMsg.getPageSize();
return datas;
}
Mybatis-Pagehelper
于 2019-12-17 14:59:40 首次发布