SSM框架使用mybatis分页插件PageHelper体会

       最近要做个分页功能,看到了Mybatis的分页插件PageHelper这个工具,使用非常的简单,但是在使用的过程中遇到了不少的坑,因为封装的完美,你使用的过程中只要几句代码就可以实现分页了,这是自己的体会。好了,下面开始分享我使用的方法以及一些坑。

一. 先在pom.xml文件中加入PageHelper依赖。

<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper -->
<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper</artifactId>
	<version>5.1.2</version>
</dependency>

 

二. 在mybatis-config.xml的配置文件中加入以下配置(比较推荐这种配置,注意plugins是有顺序的,

 

  1. properties(属性)
  2. settings(全局配置参数)
  3. typeAiases(类型别名)
  4. typeHandlers(类型处理器)
  5. objectFactory(对象工厂)
  6. plugins(插件)
  7. environments(环境集合属性对象)mappers(映射器)
    1. environment(环境子属性对象)
    2. transactionManager(事物管理)
    3. datesource(数据源)

     8. mappers(映射器)       )

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<plugins>
		<plugin interceptor="com.github.pagehelper.PageInterceptor">
			<!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库
			<property name="dialect" value="mysql" /> -->
		</plugin>
	</plugins>
</configuration>

或者在spring配置文件中加入以下配置(这里有时候配置会出现问题,控制台会报错,当初就是这里遇到坑,没能解决,用了上面的配置,如果你配置的没有问题请指教一下,互相学习,哈哈):

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<!-- 注入数据库连接池 -->
	<property name="dataSource" ref="dataSource" />
	<!-- 配置MyBaties全局配置文件:mybatis-config.xml -->
	<property name="configLocation" value="classpath:mybatis-config.xml" />
	<!-- 扫描entity包 使用别名 -->
	<property name="typeAliasesPackage" value="com.entity" />
	<!-- 扫描sql配置文件:mapper需要的xml文件 -->
	<property name="mapperLocations" value="classpath:mapper/*.xml" />

	<!-- 配置分页插件 -->
	<property name="plugins"> 
		<array> 
			<bean class="com.github.pagehelper.PageInterceptor"> 
				<property name="properties"> 
					<value> dialect=mysql reasonable=true </value> 
				</property> 
			</bean> 
		</array> 
	</property> 
</bean>

三. 接下来就是Java代码了

1. 首先就是mapper里的sql语句了

<select id="selectUserList" parameterType="Integer" resultMap="user">
	select * from user	
</select>

2. 接着就是DAO层的代码了

List<User> selectUserList(Integer page);

3. 再接着就是Service层代码了

@Override
public List<User> selectUserList(Integer page) {
	return userDao.selectUserList(page);
}

4. 最后就是Controller 层代码了

@RequestMapping(value="index") 
@ResponseBody
public JSONObject showUserList(Model model,
	@RequestParam(required=true,defaultValue="1") Integer page, 
	@RequestParam(required=false,defaultValue="10") Integer pageSize){ 
	//PageHelper.startPage(page, pageSize);这段代码表示,程序开始分页了,page默认值是1,pageSize默认是10,意思是从第1页开始,每页显示10条记录。 
	PageHelper.startPage(page, 10); 
	List<User> userList = userService.selectUserList(page); 
	PageInfo<User> pageInfo = new PageInfo<User>(userList);
	long total = pageInfo.getTotal();  //总记录数  	      
	int pages = pageInfo.getPages();  //总页数	       
	    pageSize = pageInfo.getPageSize();  //每页的展示条数  	     
	JSONObject obnJsonObject = new JSONObject();
	obnJsonObject.put("msg", userList);
	return obnJsonObject;
//	model.addAttribute("page", pageInfo); 
//	model.addAttribute("userList",userList);  
//	return "showuser"; 
}

 

前端jsp的代码这里就没提供了,下面的一篇经验帖有说明,最后就是神奇的事情发生了

 

以上是简单的一些应用,如有不足的请大神们指教。

 

这里再附上一篇经验帖和另两篇博客:

https://jingyan.baidu.com/article/b907e62784c48446e7891c90.html

https://blog.csdn.net/qq_26790807/article/details/62429290

https://blog.csdn.net/appleyk/article/details/77318175

以及mybatis-Config.xml全局配置文件解析:

https://blog.csdn.net/lovebosom/article/details/52584562

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值