Mybatis分页插件PageHelper的实现
前言
分页这个概念在做web网站的时候很多都会碰到 说它简单吧 其实也简单 小型的网站,完全可以自己写一个,首先查出数据库总条数,然后按照分页大小分为多少页,通过mysql语句里面的limit x,y 完全可以实现 不过有插件就用插件吧 毕竟人家写好的直接拿过来用就好啦 没必要造重复的*!
1.依赖Jar包导入或者是添加依赖(Maven项目)
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>0.9.5</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
或者导入Jar包后如图所示 pagehelper版本5.12
2.全局配置文件里面加入插件配置信息
<!-- 配置分页插件 -->
<plugins>
<!--自4.0.0版本以后实现这个接口了 com.github.pagehelper.PageInterceptor -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->
<!-- 自4.0.0以后的版本已经可以自动识别数据库了,所以不需要我们再去指定数据库 -->
<!--<property name="dialect" value="Mysql"/>-->
</plugin>
</plugins>
3.配置文件结点注意顺序(顺序错误可能会引起错误)
<?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> <!-- 引入外部配置文件 -->
<properties resource="mysql.properties"></properties> <!-- 配置分页插件 -->
<plugins>
<!--自4.0.0版本以后实现这个接口了 com.github.pagehelper.PageInterceptor -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->
<!-- 自4.0.0以后的版本已经可以自动识别数据库了,所以不需要我们再去指定数据库 -->
<!--<property name="dialect" value="Mysql"/>-->
</plugin>
</plugins> <!-- 配置mybatis运行环境 -->
<environments default="cybatis">
<environment id="cybatis">
<!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
<transactionManager type="JDBC" />
<!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
<!-- POOLED 表示支持JDBC数据源连接池 -->
<!-- UNPOOLED 表示不支持数据源连接池 -->
<!-- JNDI 表示支持外部数据源连接池 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments> <mappers>
<!-- 1.自动扫描 -->
<package name="cn.mapper" />
<!-- 2.一个个配置 -->
<!--<mapper resource="com/cy/mybatis/mapper/UserMapper.xml"/> -->
</mappers>
</configuration>
4.增加Mapper分页查询接口
package cn.mapper; import java.util.List; import cn.beans.UserBean; public interface UserMapper { List<UserBean> selectAllUser() throws Exception; }
5.配置UserMapper.xml文件
<select id="selectAllUser" resultMap="userMap">
select * from user
</select>
6.书写测试类进行测试
public static void select1() { SqlSession session = DBUtil.getSession();
UserMapper user = session.getMapper(UserMapper.class); try {
//PageHelper.startPage(pageNum, pageSize) 页码,分页大小
PageHelper.startPage(1, 3);
List<UserBean> list = user.selectAllUser();
for(UserBean bean :list){
System.out.println(bean.getName());
}
session.commit();
} catch (Exception e) {
e.printStackTrace();
session.rollback();
} }
7.测试结果
8.查看数据库所有数据进行比对
9.结语以及易错点提示
1.错误易出现于mybatis.conf.xml全局配置文件中 要注意插件配置的位置,位置不对也会报错!
2.版本问题 4.00版本后pagehelper 接口的位置发生了变化,有些小伙伴在其他网站上看到的接口已经过时了 易出现错误 在一个就是不需要指定数据库了 4.00版本后会自动扫描!
3.每天记录一点,进步一点!