Mybatis分页插件PageHelper配置及使用方法详解
环境
框架:spring+springmvc+mybatis
pom.xml
com.github.pagehelper pagehelper 5.1.2
配置全局配置文件
在mybatis的全局配置文件中配置PageHelper分页插件
使用
例如:实现对用户的多条件查询
packagecom.szfore.model;
importjava.util.Date;
importjava.util.List;
publicclassUser{
privateIntegerid;
privateStringuname;
privateStringpwd;
privateStringname;
privateIntegersex;
privateStringphone;
privateStringcompany;
privateStringjobtitle;
privateStringbirth;
privateDatecreatedate;
privateDatelastlogintime;
privateListroleList;
publicListgetRoleList(){
returnroleList;
}
publicvoidsetRoleList(ListroleList){
this.roleList=roleList;
}
publicIntegergetId(){
returnid;
}
publicvoidsetId(Integerid){
this.id=id;
}
publicStringgetUname(){
returnuname;
}
publicvoidsetUname(Stringuname){
this.uname=uname==null?null:uname.trim();
}
publicStringgetPwd(){
returnpwd;
}
publicvoidsetPwd(Stringpwd){
this.pwd=pwd==null?null:pwd.trim();
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name==null?null:name.trim();
}
publicIntegergetSex(){
returnsex;
}
publicvoidsetSex(Integersex){
this.sex=sex;
}
publicStringgetPhone(){
returnphone;
}
publicvoidsetPhone(Stringphone){
this.phone=phone==null?null:phone.trim();
}
publicStringgetCompany(){
returncompany;
}
publicvoidsetCompany(Stringcompany){
this.company=company==null?null:company.trim();
}
publicStringgetJobtitle(){
returnjobtitle;
}
publicvoidsetJobtitle(Stringjobtitle){
this.jobtitle=jobtitle==null?null:jobtitle.trim();
}
publicStringgetBirth(){
returnbirth;
}
publicvoidsetBirth(Stringbirth){
this.birth=birth==null?null:birth.trim();
}
publicDategetCreatedate(){
returncreatedate;
}
publicvoidsetCreatedate(Datecreatedate){
this.createdate=createdate;
}
publicDategetLastlogintime(){
returnlastlogintime;
}
publicvoidsetLastlogintime(Datelastlogintime){
this.lastlogintime=lastlogintime;
}
}
UserMapper
注意:mapper中就按不分页的那种写法就好
packagecom.szfore.dao;
importcom.szfore.model.User;
importcom.szfore.model.UserExample;
importjava.util.List;
importorg.apache.ibatis.annotations.Param;
importorg.springframework.stereotype.Repository;
@Repository
publicinterfaceUserMapper{
/**
*多条件分页查询
*@paramuserParam
*@return
*/
publicListqueryByPage(UseruserParam);
}
UserMapper.xml
注意:sql中就不要写limit了,pageHelp会自己处理,sql就按不分页的那种写法就好
SELECT * FROM `user` ANDid=#{id} ANDuname=#{uname} ANDnamelike'%${name}%' ANDphonelike'%${phone}%' ANDcompanylike'%${company}%' ANDjobTitlelike'%${jobtitle}%' ANDbirthlike'%${birth}%'
UserServiceImpl
packagecom.szfore.service.impl;
importcom.github.pagehelper.PageHelper;
importcom.github.pagehelper.PageInfo;
importcom.szfore.dao.MenuMapper;
importcom.szfore.dao.UserMapper;
importcom.szfore.dao.UserRoleMapper;
importcom.szfore.model.*;
importcom.szfore.service.IUserService;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Service;
importorg.springframework.transaction.annotation.Transactional;
importjavax.servlet.http.HttpSession;
importjava.util.Date;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
@Service
publicclassUserServiceImplimplementsIUserService{
@Autowired
privateUserMapperuserMapper;
@Autowired
privateMenuMappermenuMapper;
@Autowired
privateUserRoleMapperuserRoleMapper;
/**
*多条件分页查询用户
*@paramuserParam
*@parampageNum
*@parampageSize
*@return
*/
publicJsonqueryByPage(UseruserParam,IntegerpageNum,IntegerpageSize){
//利用PageHelper分页查询注意:这个一定要放查询语句的前一行,否则无法进行分页,因为它对紧随其后第一个sql语句有效
PageHelper.startPage(pageNum,pageSize);
ListuserList=userMapper.queryByPage(userParam);
PageInfopageInfo=newPageInfo(userList);
Jsonjson=newJson();
json.setMsg("成功!");
json.setObj(pageInfo);
json.setSuccess(true);
returnjson;
}
}
说明:PageInfo是PageHelper自带的分页对象类,详情如下:
当前页
privateintpageNum;
每页的数量
privateintpageSize;
当前页的数量
privateintsize;
//由于startRow和endRow不常用,这里说个具体的用法
//可以在页面中"显示startRow到endRow共size条数据"当前页面第一个元素在数据库中的行号
privateintstartRow;
当前页面最后一个元素在数据库中的行号
privateintendRow;
总记录数
privatelongtotal;
总页数
privateintpages;
结果集
privateListlist; 第一页
privateintfirstPage;
前一页
privateintprePage;是否为第一页
privatebooleanisFirstPage=false;
是否为最后一页
privatebooleanisLastPage=false;
是否有前一页
privatebooleanhasPreviousPage=false;
是否有下一页
privatebooleanhasNextPage=false;
导航页码数
privateintnavigatePages;
所有导航页号
privateint[]navigatepageNums;
通过PageInfo获取其他信息
PageHelper.startPage(req.getCurrentPage(),req.getPageSize(),true);
Listlist=securityRiskLibaryDAO.queryList(srl);
PageInfopage=newPageInfo(list);
page.getTotal();
page.xxxx
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。