1:PageHelper简介使用
2:在maven配置PageHelper依赖
3:mybatis的xml配置PageHelper
4:编写逻辑代码
1:PageHelper简介使用
PageHelper是Github上开源的MyBatis分页插件,使用起来非常的简单,方便,并且支持任何复杂的单表、 多表 分页
pagehelper分页插件,他的原理是利用mybatis拦截器,在查询数据库的时候,拦截下SQL,然后进行修改,从而实现分页
2:在maven配置PageHelper依赖
在maven项目的pom.xml中配置PageHelper的依赖
dependency标签是在dependencys标签中的
<!--PageHelper依赖-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.10</version>
</dependency
3:mybatis的xml配置PageHelper
```bash
```bash
<!--配置插件-->
<!--纯mybati是在mybatis的配置文件配置-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
<!-- 本文不使用此处配置-->
<!--当spring和mybatis整合在一起时,可以在spring的配置文件中配置-->
<!-- 配置mybatis分页插件PageHelper -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<!-- 什么都不配,使用默认的配置 -->
<value></value>
</property>
</bean>
</array>
</property>
4:编写逻辑代码
定义一个工具类,减少代码的重复性
```bash
public class MybatisUtilone {
private static SqlSessionFactory factory = null;
static {
String config="mybatis-sql.xml"; // 需要和你的项目中的文件名一样
try {
InputStream in = Resources.getResourceAsStream(config);
//创建SqlSessionFactory对象,使用SqlSessionFactoryBuild
factory = new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
e.printStackTrace();
}
}
//获取SqlSession的方法
public static SqlSession getSqlSession() {
SqlSession sqlSession = null;
if( factory != null){
sqlSession = factory.openSession();// 非自动提交事务
}
return sqlSession;
}
}
Dao映射
/*使用pageHelper*/
List<User> selectAll();
Sql映射语句
<!--数据分页-->
<select id="selectAll" resultType="com.gx.pojo.User">
select * from user order by id
</select>
测试类
public class TestMybatisSql {
private static SqlSession sqlSession = MybatisUtilone.getSqlSession();
private static UserDaoone userDaoone = sqlSession.getMapper(UserDaoone.class);
/*数据分页*/
@Test
public void RunselectAll(){
/*
* 加入pagehelper方法分页 PageHelper.startPage 不是maybatis包含的
* PageHelper.startPage(pageNum,pageSize)
* pageNum:第几页,从1开始
* pageSize:一PageHelper.startPage页中有多少行数据
* */
PageHelper.startPage(3,3);
List<User> userList = userDaoone.selectAll();
for (User su:userList) {
System.out.println("if=====" + su);
}
sqlSession.close();
}
PageHelper.startPage(3,3);=PageHelper.startPag(第三页,每页三行);
第三页:数据表的第七行起到第九行
数据表
输出