java中分页查询的实现_java中分页实现步骤图解

java中分页查询的实现_java中分页实现步骤图解java分页查询的实现分页要传入当前所在页数和每页显示记录数,再分页查询数据库,部分代码如下所示。传入参数实体类:publicclassMessageReq{privateStringmemberId;//会员idprivateintcurrentPage;//当前页privateintpageSize;//一页多少条记录privateint

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

java分页查询接口的实现

分页要传入当前所在页数和每页显示记录数,再分页查询数据库,部分代码如下所示。

传入参数实体类:

public class MessageReq {

    private String memberId;//会员id
    private int currentPage;//当前页
    private int pageSize;//一页多少条记录
    private int startIndex;//从哪一行开始
    private int endIndex;//从哪一行结束


    public String getMemberId() {
        return memberId;
    }
    public void setMemberId(String memberId) {
        this.memberId = memberId;
    }
    public int getCurrentPage() {
        return currentPage;
    }   
    public int getStartIndex() {
        return startIndex;
    }
    public int getEndIndex() {
        return endIndex;
    }
    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }
    public void setStartIndex(int startIndex) {
        this.startIndex = startIndex;
    }
    public void setEndIndex(int endIndex) {
        this.endIndex = endIndex;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    //根据当前所在页数和每页显示记录数计算出startIndex和endIndex
    public void setStartIndexEndIndex(){
         this.startIndex=(this.getCurrentPage()-1)*this.getPageSize();
         this.endIndex= (this.getCurrentPage()-1)*this.getPageSize()+this.getPageSize();
    }

}

分页工具类:

public class Page<T>{
    private int currentPage = 1; // 当前页
    private int pageSize = 20; //每页显示记录数
    private int startRecord = 1; //起始查询记录
    private int totalPage = 0; //总页数
    private int totalRecord = 0; //总记录数

    private List<T> datas;

    public Page(){}

    public Page(int currentPage, int pageSize) {
        this.currentPage = currentPage;
        this.pageSize = pageSize;
        if(this.currentPage <= 0) {
            this.currentPage = 1;
        }
        if(this.pageSize <=0) {
            this.pageSize = 1;
        }
    }

    public Page(int currentPage, int pageSize, int totalRecord) {
        this(currentPage, pageSize);
        this.totalRecord = totalRecord;
        if(this.totalRecord <=0) {
            this.totalRecord = 1;
        }
    }

    public int getCurrentPage() {
        if(currentPage <= 0) {
            return 1;
        }
        return currentPage;
    }

    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public int getTotalRecord() {
        if(totalRecord < 0) {
            return 0;
        }
        return totalRecord;
    }
    public void setTotalRecord(int totalRecord) {
        this.totalRecord = totalRecord;
    }
    public List<T> getDatas() {
        return datas;
    }
    public void setDatas(List<T> datas) {
        this.datas = datas;
    }

    public int getTotalPage() {
        if(totalRecord <= 0) {
            return 0;
        }
        int size = totalRecord / pageSize;//总条数/每页显示的条数=总页数
        int mod = totalRecord % pageSize;//最后一页的条数
        if(mod != 0) {
            size++;
        }
        totalPage = size;
        return totalPage;
    }

    public int getStartRecord() {
        startRecord = (getCurrentPage() - 1) * pageSize;
        return startRecord;
    }

}

Manager层

public interface MessageManager {

    //分页查询消息
    public Page<Message> queryMessage(MessageReq req);
}
@Component
public class MessageManagerImpl implements MessageManager{ 
   

    @Autowired
    private MessageMapper messageMapper;

    @Override
    public Page<Message> queryMessage(MessageReq req) {
        Page<Message> page = new Page<Message>();
        int pageCount = messageMapper.getMessageNum(req.getMemberId());//得到总条数
        page = initPage(page, pageCount, req);
        List<Message> message= messageMapper.queryMessage(req);
        if (!message.isEmpty()) {
            page.setDatas(message);
        }
        return page;
    }

    private Page<Message> initPage(Page<Message> page, int pageCount,
            MessageReq messageReq) {
        page.setTotalRecord(pageCount);
        page.setCurrentPage(messageReq.getCurrentPage());
        page.setPageSize(messageReq.getPageSize());
        messageReq.setStartIndexEndIndex();
        return page;    
    }   

}

Dao层

public interface MessageMapper {

    //分页查询
    public List<Message> queryMessage(Messagereq);

    //查询总条数
    public int getMessageNum(String memberId);
}

mybatis的.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.sf.ccsp.member.dao.mapper.MessageMapper">
   <resultMap id="MessageResultMap" type="com.sf.ccsp.member.dao.domain.message.Message" >
      <result column="ID" property="id" jdbcType="VARCHAR" />
      <result column="MEMBERID" property="memberId" jdbcType="VARCHAR" />
      <result column="MESSAGE_CLASSIFY" property="messageClassify" jdbcType="VARCHAR" />
      <result column="MESSAGE_CODE" property="messageCode" jdbcType="VARCHAR" />
      <result column="MESSAGE_CONTENT" property="messageContent" jdbcType="VARCHAR" />
      <result column="MESSAGE_STATUS" property="messageStatus" jdbcType="VARCHAR" />
   </resultMap>

   <select id="queryMessage" resultMap="MessageResultMap" parameterType="com.sf.ccsp.member.client.request.MessageReq">
     select *
     from cx_customer_message
     where MEMBERID = #{memberId, jdbcType=VARCHAR}
     and ISVALID = '1'
     LIMIT #{startIndex,jdbcType=INTEGER},#{pageSize,jdbcType=INTEGER}  
   </select>

    <select id="getMessageNum" resultType="INTEGER" parameterType="String">
      select count(*)
      from cx_customer_message
      where MEMBERID = #{memberId, jdbcType=VARCHAR}
    </select>

</mapper>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186935.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • net.sf.json.JSONException: null object_json数组转json对象

    net.sf.json.JSONException: null object_json数组转json对象1简介在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。JSON建构于两种结构:“名称/值”对的集合(ACollectionofna…

    2022年9月22日
    2
  • 局域网广域网区别_局域网和广域网的简称

    局域网广域网区别_局域网和广域网的简称一、局域网 局域网(LocalAreaNetwork),简称LAN,是指在某一区域内由多台计算机互联成的计算机组。“某一区域”指的是同一办公室、同一建筑物、同一公司和同一学校等,一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、扫描仪共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算

    2022年9月25日
    2
  • java事务总述_什么是先总述后详述

    java事务总述_什么是先总述后详述java事务总述一、java事务概述1.1、java事务简述1、简介事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列SQL操作,这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行。如果任何一个SQL操作失败,那么整个操作就都失败,所有操作都会回滚到操作前状态,或者是上一个节点。2、java事务和数据库事务的关联实际上,一个Java应用系统,如果要操作数据库,则通过JDBC来实现的。增加、修改、删除都是通过相应方法间接来实现的,事务的控制也相应转移到Java程序代码中。因

    2022年8月31日
    4
  • SPPnet 详解[通俗易懂]

    SPPnet 详解[通俗易懂]RCNN系列:RCNN,SPPNet,FastRCNN,FasterRCNN,R-FCN。  前不久刚刚看完rcnn和fastrcnn,对目标检测的学习更进一步。sppNet简介:作者:何凯明  2016年加入成为FAIR(facebook微软研究员),2011年获得博士学位,主要兴趣和研究在计算机视觉和深度学习。获得cpvr和iccv多个奖项。 SP…

    2022年6月12日
    47
  • intellij idea 控制台中文乱码_idea server控制台乱码

    intellij idea 控制台中文乱码_idea server控制台乱码本人下载了一开源工程,该工程采用的是maven进行编译,在导入到itellijidea后,按如下图配置好maven编译环境但是采用配置好的maven进行编译时,在run的控制台输出窗口中出现乱码,导致无法编译,由于工程是utf-8编码,所以按如下方式配置了工程的编码网上run控制台输出乱码的解决思路如下:1)参照上面配置工程编码的方式将GlobalEncoding/Proj…

    2022年8月29日
    5
  • 记使用 git clean -d -fx ” ” 命令(建议慎用)[通俗易懂]

    记使用 git clean -d -fx ” ” 命令(建议慎用)

    2022年2月10日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号