摘要:本文主要向大家介绍了java语言的ssm框架实现分页功能的示例代码,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
本文主要向大家介绍了java语言的ssm框架实现分页功能的示例代码,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
java web 实现分页功能,分享给大家,具体如下:
使用框架:ssm
数据库:oracle
话说 oracle 的分页查询比 mysql 复杂多了,在这里简单谈一下:
查询 前十条数据:
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
复制代码
语法较为复杂,
同样的结果,mysql 的语法是:用一个 LIMIT 就可以解决。
SELECT
id,
title,
create_time as createTime,
musictor,
musictitle
FROM
krry_blog
ORDER BY create_time desc
LIMIT 0,5
复制代码
SSM 框架的搭建,就不多说了,以前的博客有详细介绍,这里就谈谈实现 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:操作数据库
* @author krry
* @version 1.0.0
*
*/
public interface BlogMapper {
/**
* 查询所有博客
* @param params
* @return
*/
public List<HashMap
/**
* 计算博客数量
* com.krry.dao.admin
* 方法名:countBlogs
* @author krry
* @param params
* @return int
* @exception
* @since 1.0.0
*/
public long countBlogs();
}
复制代码
BlogMapper.xml
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"//mybatis.org/dtd/mybatis-3-mapper.dtd">
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 <= and="" wn=""> #{pageNo}
SELECT
count(*)
FROM
krry_blog
复制代码
service业务层:
接口类: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层:处理业务逻辑(impl里面实现)
* @author asusaad
*
*/
public interface IBlogService {
/**
* 分页查询所有博客
* @param params
* @return
*/
public List<HashMap
/**
* 计算博客数量
* @param params
* @return
*/
public long countBlogs();
}
复制代码
impl 实现类: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;
/**
* 实现service层接口
* @author asusaad
*
*/
@Service
public class BlogService implements IBlogService{
@Autowired
private BlogMapper blogMapper;
/**
* 查询博客
*/
public List<HashMap
//查询博客信息
List<HashMap
return blog;
}
/**
* 计算博客数量
* @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层,作为请求转发
* @author asusaad
*
*/
@Controller //表示是多例模式,每个用户返回的web层是不一样的
public class KrryController {
@Autowired
private IBlogService blogService;
/**
* 首页,并且分页查询
* @return
*/
@RequestMapping("/index")
public ModelAndView index(Params params){
params.setPageNo(0);
params.setPageSize(10); //一开始只查询10条
//调用业务层
List<HashMap
//查询博客数量
long coutBlogs = blogService.countBlogs();
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("blogs", blogs);
modelAndView.addObject("coutBlogs", coutBlogs);
modelAndView.setViewName("index");
return modelAndView;
}
/**
* ajax请求 的 分页查询
* @param params
* @return
*/
@ResponseBody
@RequestMapping("/loadData")
public HashMap
HashMap
List<HashMap
map.put("blogs", blogs);
return map;
}
}
复制代码
这里要有两个实体类,作为数据库查询的注入 Blog,还有分页查询的两个参数 Params:
设置data参数:pageNo(下一页):就是当前页数 * 下一页要显示的数量
pageSize(下一页):已经查询出来的数量(pageNo) + 每页要显示的数量
在数据库中是 WN <= pagesize="" and="" wn=""> pageNo 来查询分页数据
Blog.java
package com.krry.entity;
/**
*
* User
* @author krry
* @version 1.0.0
*
*/
public class Blog {
// 主键
private String id;
//博客标题
private String title;
//音乐作者
private String musictor;
//音乐标题
private String musictitle;
//创建时间
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="//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);
%>
分页展示
标题 |
---|
音乐人 |
---|
音乐标题 |
---|
发布时间 |
---|
${blog.TITLE} |
${blog.MUSICTOR} |
${blog.MUSICTITLE} |
${blog.CREATETIME} |
复制代码
分页效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助
希望这篇文章可以帮助到你,总之同学们,IT知识尽在职坐标。
擅长针对企业软件开发的产品设计及开发的细节与流程设计课程内容。座右铭:大道至简!
已有23人表明态度,87%喜欢该老师!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号