真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么在java中使用ssm框架實(shí)現(xiàn)一個(gè)分頁功能

怎么在java中使用ssm框架實(shí)現(xiàn)一個(gè)分頁功能?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

創(chuàng)新互聯(lián)長(zhǎng)期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為固原企業(yè)提供專業(yè)的網(wǎng)站制作、成都網(wǎng)站制作,固原網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

使用框架:ssm

數(shù)據(jù)庫:oracle

話說 oracle 的分頁查詢比 MySQL 復(fù)雜多了,在這里簡(jiǎn)單談一下:

查詢 前十條數(shù)據(jù):

SELECT * FROM(
 SELECT ROWNUM WN,RN.* FROM (
  SELECT
   id,
   title,
   create_time as createTime,
   musictor,
   musictitle
  FROM
   krry_blog
  ORDER BY create_time desc
  )RN
 )WN
WHERE WN <= 10 AND WN > 0

語法較為復(fù)雜,

同樣的結(jié)果,mysql 的語法是:用一個(gè) LIMIT 就可以解決。

SELECT
 id,
 title,
 create_time as createTime,
 musictor,
 musictitle
FROM
 krry_blog
 ORDER BY create_time desc
LIMIT 0,5

 SSM 框架的搭建,就不多說了,以前的博客有詳細(xì)介紹,這里就談?wù)剬?shí)現(xiàn) java web 分頁的功能。

用到插件 js : krry_page.js,還有jQuery

mapper 持久層:

BlogMapper.java

package com.krry.mapper;
import java.util.HashMap;
import java.util.List;
import com.krry.entity.Params;

/**
 * 
 * Mapper:操作數(shù)據(jù)庫
 * @author krry
 * @version 1.0.0
 *
 */
public interface BlogMapper {

 /**
 * 查詢所有博客
 * @param params
 * @return
 */
 public List> findBlogs(Params params);
 
 /**
 * 計(jì)算博客數(shù)量
 * com.krry.dao.admin 
 * 方法名:countBlogs
 * @author krry 
 * @param params
 * @return int
 * @exception 
 * @since 1.0.0
 */
 public long countBlogs(); 
}

BlogMapper.xml



 
 
 
 SELECT * FROM(
  SELECT ROWNUM WN,RN.* FROM (
  SELECT
   id,
   title,
   create_time as createTime,
   musictor,
   musictitle
  FROM
   krry_blog
  ORDER BY create_time desc
  )RN
 )WN
 WHERE WN <= #{pageSize} AND WN > #{pageNo}
 
 
 
 
 SELECT
  count(*)
 FROM
  krry_blog
  

service業(yè)務(wù)層:

接口類:IBlogService.java

package com.krry.service;
import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.ibatis.annotations.Param;
import com.krry.entity.Blog;
import com.krry.entity.Params;
/**
 * service層:處理業(yè)務(wù)邏輯(impl里面實(shí)現(xiàn))
 * @author asusaad
 *
 */
public interface IBlogService { 
 /**
 * 分頁查詢所有博客
 * @param params
 * @return
 */
 public List> findBlogs(Params params);
 
 /**
 * 計(jì)算博客數(shù)量
 * @param params
 * @return
 */
 public long countBlogs(); 
}

impl 實(shí)現(xiàn)類:BlogService.java

package com.krry.service.impl;
import java.util.HashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.servlet.ModelAndView;
import com.krry.entity.Params;
import com.krry.mapper.BlogMapper;
import com.krry.service.IBlogService;
/**
 * 實(shí)現(xiàn)service層接口
 * @author asusaad
 *
 */
@Service
public class BlogService implements IBlogService{
 @Autowired
 private BlogMapper blogMapper;
 
 /**
 * 查詢博客
 */
 public List> findBlogs(Params params) {
 
 //查詢博客信息
 List> blog = blogMapper.findBlogs(params);
 
 
 return blog;
 }
 
 /**
 * 計(jì)算博客數(shù)量
 * @param params
 * @return
 */
 public long countBlogs(){
  long coutBlogs = blogMapper.countBlogs(); 
 return coutBlogs;
 } 
}

controller控制層:

KrryController.java

package com.krry.controller;
import java.util.HashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.krry.entity.Params;
import com.krry.service.IBlogService;
/**
 * KrryController
 * controller層,作為請(qǐng)求轉(zhuǎn)發(fā)
 * @author asusaad
 *
 */
@Controller //表示是多例模式,每個(gè)用戶返回的web層是不一樣的
public class KrryController { 
 @Autowired
 private IBlogService blogService;
 
 /**
 * 首頁,并且分頁查詢
 * @return
 */
 @RequestMapping("/index")
 public ModelAndView index(Params params){ 
 params.setPageNo(0);
 params.setPageSize(10); //一開始只查詢10條 
 //調(diào)用業(yè)務(wù)層
 List> blogs = blogService.findBlogs(params);
 //查詢博客數(shù)量
 long coutBlogs = blogService.countBlogs(); 
 ModelAndView modelAndView = new ModelAndView();
 modelAndView.addObject("blogs", blogs);
 modelAndView.addObject("coutBlogs", coutBlogs);
 modelAndView.setViewName("index"); 
 return modelAndView;
 }
 
 /**
 * ajax請(qǐng)求 的 分頁查詢
 * @param params
 * @return
 */
 @ResponseBody
 @RequestMapping("/loadData")
 public HashMap loadData(Params params){
 
 HashMap map = new HashMap();
 List> blogs = blogService.findBlogs(params);
 map.put("blogs", blogs); 
 return map;
 } 
}

這里要有兩個(gè)實(shí)體類,作為數(shù)據(jù)庫查詢的注入 Blog,還有分頁查詢的兩個(gè)參數(shù) Params:

設(shè)置data參數(shù):pageNo(下一頁):就是當(dāng)前頁數(shù) * 下一頁要顯示的數(shù)量
         pageSize(下一頁):已經(jīng)查詢出來的數(shù)量(pageNo) + 每頁要顯示的數(shù)量

在數(shù)據(jù)庫中是 WN <= pageSize and WN > pageNo 來查詢分頁數(shù)據(jù)

Blog.java

package com.krry.entity;
/**
 * 
 * User
 * @author krry
 * @version 1.0.0
 *
 */
public class Blog {
 // 主鍵
 private String id;
 //博客標(biāo)題
 private String title;
 //音樂作者
 private String musictor;
 //音樂標(biāo)題
 private String musictitle;
 //創(chuàng)建時(shí)間
 private String createTime; 
 public Blog(String id, String title, String musictor, String musictitle,
  String createTime) {
 this.id = id;
 this.title = title;
 this.musictor = musictor;
 this.musictitle = musictitle;
 this.createTime = createTime;
 }

 public String getId() {
 return id;
 }

 public void setId(String id) {
 this.id = id;
 }

 public String getTitle() {
 return title;
 }

 public void setTitle(String title) {
 this.title = title;
 }

 public String getMusictor() {
 return musictor;
 }

 public void setMusictor(String musictor) {
 this.musictor = musictor;
 }

 public String getMusictitle() {
 return musictitle;
 }

 public void setMusictitle(String musictitle) {
 this.musictitle = musictitle;
 }

 public String getCreateTime() {
 return createTime;
 }

 public void setCreateTime(String createTime) {
 this.createTime = createTime;
 } 
}

Params.java

package com.krry.entity;
/**
 * 
 * Params
 * @author krry
 * @version 1.0.0
 *
 */
public class Params {
 private Integer pageSize = 0;
 private Integer pageNo = 0;
 
 public Integer getPageNo() {
  return pageNo;
 }

 public void setPageNo(Integer pageNo) {
  this.pageNo = pageNo;
 }
 
 public Integer getPageSize() {
  return pageSize;
 }

 public void setPageSize(Integer pageSize) {
  this.pageSize = pageSize;
 }
}

web 頁面 index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
pageContext.setAttribute("basePath", basePath);
%>



 
 分頁
 
 
 
 
  
   分頁展示

                 標(biāo)題      音樂人      音樂標(biāo)題      發(fā)布時(shí)間                                   ${blog.TITLE}       ${blog.MUSICTOR}       ${blog.MUSICTITLE}       ${blog.CREATETIME}                     
 
     var basePath = "${basePath}";        var krryAdminBlog = {    initPage:function(itemCount){     $("#krryPage").tzPage(itemCount, {      num_display_entries : 5, //主體頁數(shù)      num_edge_entries : 4,//邊緣頁數(shù)      current_page : 0,//指明選中頁碼      items_per_page : 10, //每頁顯示多少條      prev_text : "上一頁",      next_text : "下一頁",      showGo:true,//顯示      showSelect:false,      callback : function(pageNo, psize) {//會(huì)回傳兩個(gè)參數(shù),第一個(gè)是當(dāng)前頁數(shù),第二個(gè)是每頁要顯示的數(shù)量       krryAdminBlog.loadData(pageNo,psize);      }     });    },    //設(shè)置data參數(shù):pageNo(下一頁):就是當(dāng)前頁數(shù) * 下一頁要顯示的數(shù)量    //   pageSize(下一頁):已經(jīng)查詢出來的數(shù)量(pageNo) + 每頁要顯示的數(shù)量    //在數(shù)據(jù)庫中是 WN <= pageSize and WN > pageNo 來查詢分頁數(shù)據(jù)    loadData:function(pageNo,pageSize){     pageNo = pageNo * pageSize;     pageSize = pageNo + 10;     $.ajax({      type:"post",      url:basePath+"/loadData",      data:{pageNo:pageNo,pageSize:pageSize},      success:function(data){       if(data){        var html = "";        var blogArr = data.blogs;        for(var i=0,len=blogArr.length;i < len;i++){         var json = blogArr[i];         html+= ""+         " "+json.TITLE+""+         " "+json.MUSICTOR+""+         " "+json.MUSICTITLE+""+         " "+json.CREATETIME+""+         "";        }        $("#tbody").html(html);       }      }     });    }   };      krryAdminBlog.initPage($("#tbody").data("itemcount"));       

看完上述內(nèi)容,你們掌握怎么在java中使用ssm框架實(shí)現(xiàn)一個(gè)分頁功能的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


標(biāo)題名稱:怎么在java中使用ssm框架實(shí)現(xiàn)一個(gè)分頁功能
標(biāo)題網(wǎng)址:http://weahome.cn/article/ghgdhd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部