springJDBC實現mysql簡單分頁


效果圖:

前台jsp代碼如下:

<div class="listNav">
                    <div class="instruction">    
                        您正在查看${result }個結果中的第${start+1 }-${limit }項結果。
                        </div>
                        <fieldset><legend>首頁</legend>
                        <input type="button" name="eventSubmit_doList_first" onclick="javascript:window.location.href='${pageContext.request.contextPath}/cw/allSiteCourse.do?start=0&limit=${limit}'" value="|<">
                        </fieldset>
                        <fieldset><legend>前一頁</legend>
                        <input type="button" name="eventSubmit_doList_prev" onclick="javascript:window.location.href='${pageContext.request.contextPath}/cw/allSiteCourse.do?start=${start-limit }&limit=${limit}'" value="<">
                        </fieldset>
                        <select name="selectPageSize" id="selectPageSize" onchange="changePager(this.value)">
                            <option value="5">顯示5項…</option>
                            <option value="10">顯示10項…</option>
                            <option value="20" selected>顯示20項…</option>
                            <option value="50">顯示50項…</option>
                            <option value="100">顯示100項…</option>
                            <option value="200">顯示200項…</option>
                        <fieldset><legend>后一頁</legend>
                        <input type="button" name="eventSubmit_doList_next" onclick="javascript:window.location.href='${pageContext.request.contextPath}/cw/allSiteCourse.do?start=${start+limit }&limit=${limit}'" value=">">
                        </fieldset>
                        <fieldset><legend>尾頁</legend>
                        <input type="button" name="eventSubmit_doList_last" onclick="javascript:window.location.href='${pageContext.request.contextPath}/cw/allSiteCourse.do?start=${result }&limit=${limit}'" value=">|">
                        </fieldset>
                    </div>

controller如下:

@RequestMapping(value="/allSiteCourse",method=RequestMethod.GET)
    public String allSiteCourse(HttpServletRequest request,Pager pager){
        //查詢數據庫中所有的條數
        int result = cwInfoService.queryAllSitesCount();
        //設置分頁
        pager = cwInfoService.setPage(pager, result);
        List<Sites> siteList = cwInfoService.queryAllSites(pager);
        request.setAttribute("siteList", siteList);
        request.setAttribute("start", pager.getStart());
        request.setAttribute("limit", pager.getLimit());
        request.setAttribute("result", result);
        return "/jsp/coursewareSelectAllSites";
    }

 

service,以及實現類如下:

/**
     * 描述:查詢出所有的站點總共有多少個
     * @return
     */
    int queryAllSitesCount();
    /**
     * 描述:設置分頁的起始條數
     * @param pager
     * @return
     */
    Pager setPage(Pager pager,int result);

 

@Override
    public int queryAllSitesCount() {
        return cwInfoDao.queryAllSitesCount();
    }

    @Override
    public Pager setPage(Pager pager,int result) {
        //總共多少頁
                int pageCount = 0;
                //最后一頁的起始條數
                int lastStart = 0;
                if(pager.getLimit()!=null){
                    //根據余數判斷最后一頁是否是滿
                    if(result%pager.getLimit()==0){
                        //計算出當前數據總共有多少頁
                        pageCount = result/pager.getLimit();
                        //當前頁數小於一頁
                        if(pageCount<=1){
                            lastStart = 0;
                        }else{
                            lastStart = result-pager.getLimit();
                        }
                    }else{
                        pageCount = (result/pager.getLimit())+1;
                        if(pageCount<=1){
                            lastStart = 0;
                        }else{
                            lastStart = (pageCount-1)*pager.getLimit();
                        }
                    }
                }
                //設置分頁
                if(!(pager.getStart()!=null&&pager.getLimit()!=null)){
                    pager.setStart(0);
                    pager.setLimit(20);
                //前一頁出現負值情況
                }else if(pager.getStart()<0){
                    pager.setStart(0);
                //當前頁的數據不夠一頁
                }else if(result-pager.getLimit()<0){
                    pager.setStart(0);
                //下一頁出現超出數據情況
                }else if(pager.getStart()>=result){
                    pager.setStart(lastStart);
                }
        return pager;
    }

 

dao以及底層springJDBC:

/**
     * 描述:查詢所有的站點信息
     * @return
     */
    List<Sites> queryAllSites(Pager pager);
    /**
     * 描述:查詢出所有的站點總共有多少個
     * @return
     */
    int queryAllSitesCount();

 

@Override
    public List<Sites> queryAllSites(Pager pager) {
        String sql = "select * from sakai_site order by SITE_ID limit ?,?";
        Object[] obj = new Object[]{pager.getStart(),pager.getLimit()};
        List<Sites> list = jdbcTemplate.query(sql,obj, new siteMapper());
        return list;
    }
    @Override
    public int queryAllSitesCount() {
        String sql = "select count(*) from sakai_site";
        int result = jdbcTemplate.queryForObject(sql,Integer.class);
        return result;
    }

 

class siteMapper implements RowMapper<Sites>{

    @Override
    public Sites mapRow(ResultSet rs, int rowNum) throws SQLException {
        Sites site = new Sites();
        site.setCreatedby(rs.getString("CREATEDBY"));
        site.setCreatedon(rs.getDate("CREATEDON"));
        site.setCustomPageOrdered(rs.getString("CUSTOM_PAGE_ORDERED"));
        site.setDescription(rs.getString("DESCRIPTION"));
        site.setIconUrl(rs.getString("ICON_URL"));
        site.setInfoUrl(rs.getString("INFO_URL"));
        site.setIsSoftlyDeleted(rs.getString("IS_SOFTLY_DELETED"));
        site.setIsSpecial(rs.getString("IS_SPECIAL"));
        site.setIsUser(rs.getString("IS_USER"));
        site.setJoinable(rs.getString("JOINABLE"));
        site.setJoinRole(rs.getString("JOIN_ROLE"));
        site.setModifiedby(rs.getString("MODIFIEDBY"));
        site.setModifiedon(rs.getDate("MODIFIEDON"));
        site.setPublished(rs.getInt("PUBLISHED"));
        site.setPubview(rs.getString("PUBVIEW"));
        site.setShortDesc(rs.getString("SHORT_DESC"));
        site.setSiteId(rs.getString("SITE_ID"));
        site.setSkin(rs.getString("SKIN"));
        site.setSoftlyDeletedDate(rs.getDate("SOFTLY_DELETED_DATE"));
        site.setTitle(rs.getString("TITLE"));
        site.setType(rs.getString("TYPE"));
        return site;
    }
}

還有一個簡短的js:

//分頁
function changePager(obj){
    window.location.href=ctx + "/cw/allSiteCourse.do?start=0&limit="+obj;
}
$(document).ready(function(){
    if(limit!=''){
        $('option[value='+limit+']').attr('selected',true);
    }
});

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM