一、PageHelper分页使用避免的坑
1、PageHelper使用时,最好将它放在查询语句的前面,如果放在查询语句后面可能会出现分页后查询出来的数据不正确的问题。
2、尽量避免在PageHelper的配置文件(pagehelper.properties或者mybatis-config.xml)中配置dialect属性,最好是在代码中设置dialect属性,因为在不同的环境下可能需要设置不同的dialect属性。
3、在分页查询的时候,一定要传入Page对象;同时,在select语句中,需要使用Page对象的startPage方法开始分页,结尾处使用pageHelper.endPage()方法。
二、PageHelper分页怎么用
在使用PageHelper进行分页操作的时候,需要在查询语句前面添加startPage方法,用来指定当前页码以及每页显示的记录数。同时,在查询之后需要添加endPage方法,以便正确地释放资源。
下面是分页查询的示例:
public PageInfo getUserList(int pageNum, int pageSize) { // 开始分页 PageHelper.startPage(pageNum, pageSize); List userList = userDao.getUserList(); // 结束分页 PageHelper.endPage(); return new PageInfo(userList); }
三、PageHelper分页使用第二个SQL分页
在特殊情况下,可能需要使用第二个sql语句进行分页操作,这种情况下,我们可以通过PageHelper提供的静态方法localPage来实现第二个sql语句的分页。
public PageInfo getUserList(int pageNum,int pageSize){ int offset = (pageNum-1)*pageSize; String sql = "select * from user limit ?,?"; List userList = SqlHelper.executeForListSql(sql, offset,pageSize); // 简单的使用localPage就能实现第二个sql语句的分页 PageHelper.localPage(offset,pageSize); return new PageInfo(userList); }
四、PageHelper分页使用SQL查不出数据
在使用PageHelper进行分页操作时,如果查询的总记录数为0,则会出现Page对象的total属性为0的情况。
public PageInfo getUserList(int pageNum,int pageSize){ //这是一种错误的做法 if(userDao.getUserList().size() == 0){ return new PageInfo(null); } //开启分页 PageHelper.startPage(pageNum,pageSize); List userList = userDao.getUserList(); //结束分页 PageHelper.endPage(); return new PageInfo(userList); }
这种情况下,应该抛出异常或者返回null,不能直接返回PageInfo对象,因为此时的PageInfo对象的total属性为0。
public PageInfo getUserList(int pageNum,int pageSize){ if(userDao.getUserList().size() == 0){ throw new RuntimeException("查询数据为空!"); } //开启分页 PageHelper.startPage(pageNum,pageSize); List userList = userDao.getUserList(); //结束分页 PageHelper.endPage(); return new PageInfo(userList); }
五、PageHelper分页条
PageHelper提供了默认的分页条,我们也可以自定义分页条的样式。
.pagination>li>a, .pagination>li>span {
position: relative;
float: left;
padding: 6px 12px;
margin-left: -1px;
line-height: 1.42857143;
text-decoration: none;
background-color: #fff;
border: 1px solid #ddd;
}
- <a href="">«
- <a href="">»
- /
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/310013.html