Mybatis的分页插件PageHelper使用及注意事项
2017-12-11 16:08
746 查看
(一)PageHelper分页插件介绍
*笔者采用spring+springMVC+mybatis框架做java后台开发,开发软件是IntellijIDEA(用过之后已卸掉eclipse),项目为maven工程。使用方法
(在已有ssm框架基础上)1.mybatis的配置文件中添加代码:
<plugins> <!-- com.github.pagehelper为PageHelper类所在包名 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <property name="dialect" value="mysql"/> <!-- 该参数默认为false --> <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 --> <!-- 和startPage中的pageNum效果一样--> <property name="offsetAsPageNum" value="true"/> <!-- 该参数默认为false --> <!-- 设置为true时,使用RowBounds分页会进行count查询 --> <property name="rowBoundsWithCount" value="true"/> </plugin> </plugins>
2.maven工程添加dependency自动下载jar包,将以下代码添加到pom.xml
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.0.0</version> </dependency>
3.配置完成,等下完jar包就可以用了。。哈哈哈哈哈哈
3.1 controller@ResponseBody @RequestMapping(value = "selectPositionWithCondition.do") public AjaxResultPo deleteDepart(PositionManagerPO positionManagerPO){ PageInfo<PositionManagerVO> pageInfo = positionService.getMessagesByCondition(positionManagerPO); return new AjaxResultPo(true,pageInfo); }
*需要引 import com.github.pagehelper.PageInfo;
这里的重点就是controller调用service实现类的getMessagesByCondition方法,返回一个以PageInfo包装的一个list,(实际从数据库中查出的是list<>)
3.2 Service实现类
@Autowired private PositionManagerMapper mapper; public PageInfo<PositionManagerVO> getMessagesByCondition(PositionManagerPO positionManagerPO) { PageHelper.startPage(1,10);//这句是重点,利用分页插件将接下来的一条查询的sql限定在第一页,查10条数据 List<PositionManagerVO> list = mapper.selectPosition1(positionManagerPO);//调用mapper层执行查询 PageInfo<PositionManagerVO> page = new PageInfo<PositionManagerVO>(list);//包装到PageInfo,传给controller //测试PageInfo全部属性,PageInfo的强大之处,它携带以下信息 System.out.println("PageNum: "+page.getPageNum()); //2 第几页 System.out.println("PageSize: "+page.getPageSize()); //3 每页包含的条数 System.out.println("StartRow: "+page.getStartRow()); //4 显示的页面的第一条的 System.out.println("EndRow: "+page.getEndRow()); //6 显示的页面的最后一条的 System.out.println("Total: "+page.getTotal()); //8 总记录数 System.out.println("Pages: "+page.getPages()); //3 总页数 System.out.println("FirstPage: "+page.getFirstPage()); //1 第一页 System.out.println("LastPage: "+page.getLastPage()); //3 最后一页 System.out.println("isHasPreviousPage: "+page.isHasPreviousPage()); System.out.println("isHasNextPage: "+page.isHasNextPage()); return page; }
3.3 mapper
@Component public interface PositionManagerMapper { public List<PositionManagerVO> selectPosition1(PositionManagerPO positionManagerPO); }
mapper中什么都没有。。。
3.4 mapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.channelsoft.dao.PositionManagerMapper"> <select id="selectPosition1" resultType="java.util.ArrayList" parameterType="com.channelsoft.model.PositionManagerPO" resultMap="PositionResultMap"> select * from t_position_manager </select> </mapper>
同样简单粗暴的查询
接下来是本文的重点。。
(二)注意事项
1. pageHelper只支持使用后的下一条查询语句,而且是用limit ?,? 实现的2.pageHelper与注解形式的@SelectProvider不兼容,需使用xml文件写动态sql语句
3.maven工程默认不编译.xml文件,在工程的target文件夹下看不到对应的.xml,需要在pom.xml的build标签里添加以下内容:
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources>
欢迎:转载,评论,提问
相关文章推荐
- Mybatis 的分页插件 PageHelper的使用注意事项
- Spring + Mybatis 使用 PageHelper 插件分页
- mybatis系列五:使用pagehelper5插件进行分页
- 使用PageHelper插件分页结合mybatis返回的列表个数不对问题解决
- 使用mybatis分页插件PageHelper5.0.0遇到的问题总结
- MyBatis分页插件PageHelper的使用
- Mybatis分页插件PageHelper的使用
- mybatis框架---分页插件PageHelper的使用方法
- Mybatis 的分页插件PageHelper-4.1.1的使用
- Mybatis分页插件PageHelper的配置和简单使用方法(推荐)
- MyBatis中如何使用PageHelper插件实现 分页
- MyBatis16--MyBatis分页插件PageHelper的使用
- mybatis框架---分页插件PageHelper的使用方法
- Mybatis分页插件-PageHelper的使用
- mybatis的分页插件pagehelper-fix使用、数据库分页查询模板sql、总结mysql与oracle语句的区别
- Mybatis分页插件-PageHelper的使用
- 【TaoTao】Mybatis 系列(3)——Mybatis下使用PageHelper分页插件
- Mybatis分页插件PageHelper的配置和使用方法
- 【MyBatis】MyBatis分页插件PageHelper的使用
- Mybatis分页插件PageHelper的使用详解