15.分页的实现
来源:互联网 发布:软件开发工程师 翻译 编辑:程序博客网 时间:2024/06/05 20:27
分两部分说明分页的实现,一是手动实现;二是使用插件
1.手动实现分页
1.1编写接口方法
public interface NewUserMapper extends Mapper<User>{ /** * 手动实现分页 * @param start 表示从(start+1)条数据开始查 * @param rows 表示每页显示几条数据 * @return */ public List<User> queryPageList(Integer start,Integer rows);}或者
public interface NewUserMapper extends Mapper<User>{ /** * 手动实现分页 * @param start 表示从(start+1)条数据开始查 * @param rows 表示每页显示几条数据 * @return */ public List<User> queryPageList(@Param("start")Integer start,@Param("rows")Integer rows);}
1.2编写对应xml具体实现
<mapper namespace="cn.itcast.mybatis.mapper.NewUserMapper"><select id="queryPageList" resultType="User">select * from tb_user LIMIT #{0},#{1}</select></mapper>与接口对应的或者
<mapper namespace="cn.itcast.mybatis.mapper.NewUserMapper"><select id="queryPageList" resultType="User">select * from tb_user LIMIT #{start},#{rows}</select></mapper>
1.3编写测试用例
@Test public void testqueryPageList() { List<User> list = this.newUserMapper.queryPageList(8, 3); for(User user:list){ System.out.println(user); } }结果:
2.插件实现分页
2.1添加插件依赖
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>3.4.2-fix</version></dependency><dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>0.9.1</version></dependency>2.2配置文件中集成分页插件(注意插件之间的顺序)
<!-- 分页查询插件 --><plugin interceptor="com.github.pagehelper.PageHelper"><property name="dialect" value="mysql"/><!-- 设置为true时,使用RowBounds分页会进行count查询,查询数据总条数 --><property name="rowBoundsWithCount" value="true"/></plugin>
2.3.1测试中用到通用Mapper中的select方法,报错
@Test public void testPageHelper() {// 测试分页 /** * 设置分页参数 * pageNum 第一个参数:当前页码 * pageSize 第二个参数:数据条数 */ PageHelper.startPage(2, 3);// 查询所有数据 List<User> list = this.newUserMapper.select(null);// 对查询出的数据进行分页 PageInfo<User> pageInfo=new PageInfo<User>(list); System.out.println("数据总条数"+pageInfo.getTotal()); System.out.println("数据总页数"+pageInfo.getPages()); for(User user:list){ System.out.println(user); } }
解决办法:把分页插件配置在通用mapper插件上面
<plugins><!-- 分页查询插件 --><plugin interceptor="com.github.pagehelper.PageHelper"><property name="dialect" value="mysql"/><!-- 设置为true时,使用RowBounds分页会进行count查询,查询数据总条数 --><property name="rowBoundsWithCount" value="true"/></plugin> <!-- 通用Mapper插件 --><plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor"><!--主键自增回写方法,默认值MYSQL,详细说明请看文档--><property name="IDENTITY" value="MYSQL"/><!--序列的获取规则,使用{num}格式化参数,默认值为{0}.nextval,针对Oracle--><!--可选参数一共3个,对应0,1,2,分别为SequenceName,ColumnName,PropertyName--><!-- <propertyname="seqFormat" value="{0}.nextval"/> --><!--通用Mapper接口,多个通用接口用逗号隔开--><property name="mappers" value="com.github.abel533.mapper.Mapper"/></plugin></plugins>
问题得到了解决
阅读全文
0 0
- 15.分页的实现
- 个性化的分页实现
- 分页的实现
- Smarty的分页实现
- Smarty的分页实现
- datagrid的分页实现
- Smarty的分页实现
- 个性化的分页实现
- 实现分页的方式
- 数据库的分页实现
- repeater分页的实现
- DataList 分页的实现
- 个性化的分页实现
- repeater分页的实现
- 分页功能的实现
- SSH的分页实现
- sybase分页的实现
- JSP的分页实现!
- 几种常见图片格式优缺点分析
- bootstrap中的data-***属性
- 深入理解dubbo之服务发布源码分析
- 【Android】快速切换到主线程更新UI的几种方法
- java中实例的意思
- 15.分页的实现
- 顺序表及其应用
- qt 获取本机IP地址方法之一
- css 清除浮动的几种方法
- Anaconda环境管理
- 欢迎使用CSDN-markdown编辑器
- [bzoj 1076--SCOI2008]奖励关
- 小视频-消息推送原理及相关问题解决
- 机器学习实战python实例