Mybatis-Pagehelper

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;
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值