广告
返回顶部
首页 > 资讯 > 精选 >TK-MyBatis分页查询怎么使用
  • 459
分享到

TK-MyBatis分页查询怎么使用

2023-06-21 22:06:05 459人浏览 安东尼
摘要

本篇内容介绍了“TK-mybatis分页查询怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!记 tkMybatis 查询出一个 &nb

本篇内容介绍了“TK-mybatis分页查询怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

记 tkMybatis 查询出一个  List集合 该集合已经做好了一层分页Page封装 即查询出的list 使用类型判断 instanceof Page 为true
但是,中途不明白这是一个带分页的集合,把查询出的结果集又做了一层封装 需要返回的对象类型为GoodsCategoryDTO,代码如下: 

   // 商品集合             List<GoodsCategoryDTO> goodsCategorys  = goodsLists.stream().map(x->{            GoodsCategoryDTO goodsDTO = new GoodsCategoryDTO();            goodsDTO.setGoodsId(x.getGoodsId());            // 价格,名字            if(x.getPriceInfo().getPriceValue() == null && x.getPriceInfo().getPriceType() == null){                goodsDTO.setOriginalPrice(x.getPriceInfo().getOriginalPrice());            }else {                goodsDTO.setOriginalPrice(x.getPriceInfo().getOriginalPrice());                goodsDTO.setPrice(x.getPriceInfo().getPriceValue() == null ?  new BigDecimal(""): x.getPriceInfo().getPriceValue());                goodsDTO.setGoodsLable(x.getPriceInfo().getPriceName());            }            goodsDTO.setTitle(x.getGoodsName());            goodsDTO.setSubTitle(x.getGoodsSubname());            goodsDTO.setImg(x.getGoodsImage());            goodsDTO.setSkuId(x.getSkuId());            return goodsDTO;        }).collect(Collectors.toList());         return goodsCategorys;

从字面意思上理解 没有问题 返回一个需要出里商品的集合 在controller里面做分页的时候new 一个PageInfo 把该集合传入 代码如下:

 PageHelper.startPage(goodsParam.getPage(), goodsParam.getSize());  //  设置分页值        // 返回值         List<GoodsCategoryDTO> goodsCategoryDTO = goodsService.getGoodsCategoryInfo(goodsParam);         PageInfo<GoodsCategoryDTO> pageInfo = new PageInfo<>(goodsCategoryDTO);         return ResultGenerator.genSuccessResult("返回数据成功", pageInfo);

但是万万没有想到,在创建分页对象PageInfo过程中 goodsCategoryDTO这个集合来判断分页形式,然后根据page 获取当前页pageNum和pageSize和pageTotal,但是如果goodsCategoryDTO 使用instanceof 判断一直是Collection 无法分页。

public PageInfo(List<T> list, int navigatePages) {        if (list instanceof Page) {            Page page = (Page) list;            this.pageNum = page.getPageNum();            this.pageSize = page.getPageSize();             this.pages = page.getPages();            this.list = page;            this.size = page.size();            this.total = page.getTotal();            //由于结果是>startRow的,所以实际的需要+1            if (this.size == 0) {                this.startRow = 0;                this.endRow = 0;            } else {                this.startRow = page.getStartRow() + 1;                //计算实际的endRow(最后一页的时候特殊)                this.endRow = this.startRow - 1 + this.size;            }        } else if (list instanceof Collection) {            this.pageNum = 1;            this.pageSize = list.size();             this.pages = this.pageSize > 0 ? 1 : 0;            this.list = list;            this.size = list.size();            this.total = list.size();            this.startRow = 0;            this.endRow = list.size() > 0 ? list.size() - 1 : 0;        }        if (list instanceof Collection) {            this.navigatePages = navigatePages;            //计算导航页            calcNavigatepageNums();            //计算前后页,第一页,最后一页            calcPage();            //判断页面边界            judgePageBoudary();        }    }

想了一下 使用如下的解决办法可能会好一点 直接new 一个新的Page对象 获取新的pageNum pageSize Total 然后赋值给该对象 ,然后遍历集合中goodsList 然后做二次封装 添加到 page集合 最后返回该集合即可。

     public List<GoodsCategoryDTO> getGoodsCategoryInfo (GoodsParam goodsParam){          // 查询出已经实现和封装好的Page的list         List<GoodsDTO> goodsLists = queryGoodsByCat(goodsParam);          if (goodsLists instanceof Page<?>) {             Page<GoodsDTO> goodsPage = (Page<GoodsDTO>) goodsLists;             return new Page<GoodsCategoryDTO>() {{                 this.setPageNum(goodsPage.getPageNum());                 this.setPageSize(goodsPage.getPageSize());                 this.setTotal(goodsPage.getTotal());                 this.setPages(goodsPage.getPages());                 this.addAll(goodsPage.stream().map(goods -> new GoodsCategoryDTO() {{                     this.setGoodsId(goods.getGoodsId());                     this.setTitle(goods.getGoodsName());                     this.setSubTitle(goods.getGoodsSubname());                     this.setImg(goods.getGoodsImage());                     this.setSkuId(goods.getSkuId());                     if(goods.getPriceInfo().getPriceValue() == null && goods.getPriceInfo().getPriceType() == null){                         this.setOriginalPrice(goods.getPriceInfo().getOriginalPrice());                     }else {                         this.setOriginalPrice(goods.getPriceInfo().getOriginalPrice());                         this.setPrice(goods.getPriceInfo().getPriceValue() == null ?  new BigDecimal(""): goods.getPriceInfo().getPriceValue());                         this.setGoodsLable(goods.getPriceInfo().getPriceName());                     }                 }}).collect(Collectors.toList()));             }};         } else {             throw new IllegalStateException("goods list must be instance of Page");         }    }

“TK-MyBatis分页查询怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: TK-MyBatis分页查询怎么使用

本文链接: https://www.lsjlt.com/news/300994.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • TK-MyBatis分页查询怎么使用
    本篇内容介绍了“TK-MyBatis分页查询怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!记 tkMybatis 查询出一个 &nb...
    99+
    2023-06-21
  • TK-MyBatis分页查询的具体使用
    记 tkMybatis 查询出一个  List集合 该集合已经做好了一层分页Page封装 即查询出的list 使用类型判断 instanceof Page 为true 但是,中途不明...
    99+
    2022-11-12
  • Mybatis分页查询怎么实现
    小编给大家分享一下Mybatis分页查询怎么实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!我们实现查询除了@org.junit.Test  ...
    99+
    2023-06-28
  • Mybatis-plus的分页查询操作怎么使用
    这篇“Mybatis-plus的分页查询操作怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Mybatis-plus的...
    99+
    2023-07-02
  • 怎么在java中使用mybatis实现分页查询
    这篇文章给大家介绍怎么在java中使用mybatis实现分页查询,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4....
    99+
    2023-06-14
  • mybatis批量查询分页怎么实现
    MyBatis提供了两种方法来实现批量查询分页:1. 使用`RowBounds`实现分页查询:`RowBounds`是MyBatis...
    99+
    2023-09-05
    mybatis
  • Mybatis怎么快速实现分页查询
    这篇文章主要讲解了“Mybatis怎么快速实现分页查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mybatis怎么快速实现分页查询”吧!目录前言首先创建一个Maven项目数据库中创建一张...
    99+
    2023-06-20
  • oracle+mybatis-plus+springboot怎么实现分页查询
    本篇内容主要讲解“oracle+mybatis-plus+springboot怎么实现分页查询”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“oracle+mybatis-plus+springb...
    99+
    2023-06-20
  • MyBatis如何使用PageHelper实现分页查询
    目录使用PageHelper实现分页查询1、创建数据表2、创建项目2.1 创建实体类(Entity层)2.2 数据库映射层(Mapper层)3、运行测试MyBatis PageHel...
    99+
    2022-11-12
  • MyBatis-Plus分页插件IPage的使用展示--分页查询
    MyBatis-Plus分页插件提供了IPage接口来支持分页查询。下面是一个使用示例:1. 在Mapper接口中定义一个方法,使用...
    99+
    2023-09-09
    MyBatis
  • Oracle使用MyBatis中RowBounds实现分页查询功能
    Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便。 使用MyBatis中的RowBounds进行分页查...
    99+
    2022-10-18
  • 如何使用mybatis-plus实现分页查询功能
    今天就跟大家聊聊有关使用mybatis-plus如何实现分页查询功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 引入依赖...
    99+
    2022-11-13
  • Mybatis利用分页插件PageHelper快速实现分页查询
    目录前言 首先创建一个Maven项目 数据库中创建一张表设置Mybatis配置文件 编写pojo实体类和mapper接口和mapper映射文件创建测试类总结前言 Mybatis算是...
    99+
    2022-11-12
  • Springboot+Mybatis怎么实现分页加条件查询功能
    本篇内容介绍了“Springboot+Mybatis怎么实现分页加条件查询功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!User.xml...
    99+
    2023-06-30
  • Mybatis分解式查询使用方法
    目录一、Mybatis一对多分解式查询1. 新增持久层接口方法2. 新增映射文件对应的标签3. 新增测试方法4. 运行效果二、Mybatis一对一分解式查询1. 新增持久层接口方法2...
    99+
    2023-05-15
    Mybatis分解式查询 Mybatis一对一分解式查询 Mybatis一对多分解式查询
  • Mybatis Plus怎么使用分页
    这篇文章主要介绍了Mybatis Plus怎么使用分页的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mybatis Plus怎么使用分页文章都会有所收获,下面我们一起来看看吧。Mybatis-Plus(简称MP...
    99+
    2023-06-29
  • 在SpringMVC中使用Mybatis怎么实现对Mysql数据库进行分页查询
    在SpringMVC中使用Mybatis怎么实现对Mysql数据库进行分页查询?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。第一步,搭建这个小案例,引入spring和mybti...
    99+
    2023-05-31
    springmvc mybatis mysql
  • php 分页查询怎么写
    本文操作环境:windows7系统、PHP7.1版、Dell G3电脑。php 分页查询怎么写?php实现分页功能的3种方法直接上代码,希望大家仔细阅读。方法一:sql查询进行分页,需要调用几个函数,具体见脚本:pager.class.ph...
    99+
    2016-08-03
    php
  • 基于Java怎么用Mybatis实现oracle批量插入及分页查询
    这篇文章主要介绍“基于Java怎么用Mybatis实现oracle批量插入及分页查询”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于Java怎么用Mybatis实现oracle批量插入及分页查询”...
    99+
    2023-07-02
  • Spring Data JPA怎么使用QueryDsl查询并分页
    小编给大家分享一下Spring Data JPA怎么使用QueryDsl查询并分页,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Spring Data JPA 使用QueryDsl查询并分页 QProblemPo...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作