日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

java中分页查询的实现_java中分页实现步骤图解(Java中@)

發(fā)布時(shí)間:2023/12/19 综合教程 22 生活家
生活随笔 收集整理的這篇文章主要介紹了 java中分页查询的实现_java中分页实现步骤图解(Java中@) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java分頁(yè)查詢接口的實(shí)現(xiàn)

分頁(yè)要傳入當(dāng)前所在頁(yè)數(shù)和每頁(yè)顯示記錄數(shù),再分頁(yè)查詢數(shù)據(jù)庫(kù),部分代碼如下所示。

傳入?yún)?shù)實(shí)體類:

public class MessageReq {

    private String memberId;//會(huì)員id
    private int currentPage;//當(dāng)前頁(yè)
    private int pageSize;//一頁(yè)多少條記錄
    private int startIndex;//從哪一行開(kāi)始
    private int endIndex;//從哪一行結(jié)束


    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;
    }
    //根據(jù)當(dāng)前所在頁(yè)數(shù)和每頁(yè)顯示記錄數(shù)計(jì)算出startIndex和endIndex
    public void setStartIndexEndIndex(){
         this.startIndex=(this.getCurrentPage()-1)*this.getPageSize();
         this.endIndex= (this.getCurrentPage()-1)*this.getPageSize()+this.getPageSize();
    }

}

分頁(yè)工具類:

public class Page<T>{
    private int currentPage = 1; // 當(dāng)前頁(yè)
    private int pageSize = 20; //每頁(yè)顯示記錄數(shù)
    private int startRecord = 1; //起始查詢記錄
    private int totalPage = 0; //總頁(yè)數(shù)
    private int totalRecord = 0; //總記錄數(shù)

    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;//總條數(shù)/每頁(yè)顯示的條數(shù)=總頁(yè)數(shù)
        int mod = totalRecord % pageSize;//最后一頁(yè)的條數(shù)
        if(mod != 0) {
            size++;
        }
        totalPage = size;
        return totalPage;
    }

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

}

Manager層

public interface MessageManager {

    //分頁(yè)查詢消息
    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());//得到總條數(shù)
        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 {

    //分頁(yè)查詢
    public List<Message> queryMessage(Messagereq);

    //查詢總條數(shù)
    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>

總結(jié)

以上是生活随笔為你收集整理的java中分页查询的实现_java中分页实现步骤图解(Java中@)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。