java语言的ssm框架实现分页功能的示例代码(oracle)[Java代码]
龚超 2018-07-18 来源 : 阅读 2512 评论 0

摘要:本文主要向大家介绍了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> findBlogs(Params params);


/**

* 计算博客数量

* 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> findBlogs(Params params);


/**

* 计算博客数量

* @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> findBlogs(Params params) {


//查询博客信息

List<HashMap> blog = blogMapper.findBlogs(params);



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> blogs = blogService.findBlogs(params);

//查询博客数量

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 HashMaploadData(Params params){


HashMapmap = new HashMap();

List<HashMap> blogs = blogService.findBlogs(params);

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知识尽在职坐标。

本文由 @职坐标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论
本文作者 联系TA

擅长针对企业软件开发的产品设计及开发的细节与流程设计课程内容。座右铭:大道至简!

  • 370
    文章
  • 23054
    人气
  • 87%
    受欢迎度

已有23人表明态度,87%喜欢该老师!

进入TA的空间
求职秘籍 直通车
  • 索取资料 索取资料 索取资料
  • 答疑解惑 答疑解惑 答疑解惑
  • 技术交流 技术交流 技术交流
  • 职业测评 职业测评 职业测评
  • 面试技巧 面试技巧 面试技巧
  • 高薪秘笈 高薪秘笈 高薪秘笈
TA的其他文章 更多>>
WEB前端必须会的基本知识题目
经验技巧 93% 的用户喜欢
Java语言中四种遍历List的方法总结(推荐)
经验技巧 91% 的用户喜欢
Java语言之SHA-256加密的两种实现方法详解
经验技巧 75% 的用户喜欢
java语言实现把两个有序数组合并到一个数组的实例
经验技巧 75% 的用户喜欢
通过Java语言代码来创建view的方法
经验技巧 80% 的用户喜欢
其他海同师资 更多>>
吕益平
吕益平 联系TA
熟悉企业软件开发的产品设计及开发
孔庆琦
孔庆琦 联系TA
对MVC模式和三层架构有深入的研究
周鸣君
周鸣君 联系TA
擅长Hadoop/Spark大数据技术
范佺菁
范佺菁 联系TA
擅长Java语言,只有合理的安排和管理时间你才能做得更多,行得更远!
金延鑫
金延鑫 联系TA
擅长与学生或家长及时有效沟通
经验技巧30天热搜词 更多>>

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程