当前页面 + 每页记录数 如何拼接?
- 调用startPage
2.将分页参数存入TreadLocal本地线程对象setLocalPage(将数据存起来)
3.设置分页后,会被拦截
4.执行分页查询
5.拼接分页sql语句
6.最后调用mybatis查询获取结果,返回页面
如何使用PageHelper呢?
1、在dao层的resource目录下创建sqlMapConfig.xml文件,在配置文件中配置以下内容,目的是在操作数据库之前进行拦截
<?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>
<!-- com.github.pagehelper 为 PageHelper 类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL 六种数据库-->
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
</configuration>
2、在业务逻辑代码中调用startPage方法
2.1:PageHelper.startPage(CurrentPage,PageSize);
a.PageHelper类的使用需要引入依赖或者jar包
b.需要传入的参数:CurrentPage:当前页是多少
PageSize :每页显示多少条
3、dao层调用方法,执行sql语句
3.1:Page<CheckGroup> page = dao.findPage(queryString);
a.传入的参数:查询条件,一般前端查询的时候会附带一个查询框,如果查询框有查询条件则会传输到后端,进行模糊匹配查询(注意,查询条件有可能为空,所以sql语句一定要做非空判断再加查询条件)
b.返回值:返回值可以是自己选择的容器,只要能装下查询出来的数据就行,也可以用上面的Page类,指定可以装查询出来的数据的pojo类
c.如果是用的Page类,那么用这个类的对象.get就能获取到所需要的总条数、分页查询的数据,至于获取出来怎么处理,就需要根据前端需求决定了