首先我们要清楚java分页的思路

第一我们要明白前端页面需要向java后台传递当前页码数以及每页显示多少条数据

第二java后台代码需要向前端页面传递每页显示的数据,以及总条数以及总页数

代码如下:

首先我们要创建一个分页类用来存储数据

public class PageObject implements Serializable {

private static final long serialVersionUID = 1L;

/** 当前页的页码值 */

private Integer pageCurrent = 1;

/** 页面大小 */

private Integer pageSize = 10;

/** 总行数(通过查询获得) */

private Integer rowCount = 0;

/** 总页数(通过计算获得) */

private Integer pageCount = 0;

/** 当前页记录 */

private List records;

public Integer getPageCurrent() {

return pageCurrent;

}

public void setPageCurrent(Integer pageCurrent) {

this.pageCurrent = pageCurrent;

}

public Integer getPageSize() {

return pageSize;

}

public void setPageSize(Integer pageSize) {

this.pageSize = pageSize;

}

public Integer getRowCount() {

return rowCount;

}

public void setRowCount(Integer rowCount) {

this.rowCount = rowCount;

}

public Integer getPageCount() {

pageCount = rowCount / pageSize;

if (rowCount % pageSize != 0) {

pageCount++;

}

return pageCount;

}

public void setPageCount(Integer pageCount) {

this.pageCount = pageCount;

}

public List getRecords() {

return records;

}

public void setRecords(List records) {

this.records = records;

}

@Override

public String toString() {

return "PageObject [pageCurrent=" + pageCurrent + ", pageSize=" + pageSize + ", rowCount=" + rowCount

+ ", pageCount=" + pageCount + ", records=" + records + "]";

}

}

Controller层方法:

@RequestMapping("/getLog")

@ResponseBody

public PageObject getLog(@RequestBody Map param) throws ParseException {

System.out.println("Map集合参数" + param);

String user = (String) param.get("user");

String date = (String) param.get("date");

Date parse=null;

if(date!=null) {

SimpleDateFormat dFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

parse= dFormat.parse(date); // Date date = (Date) param.get("date");

}

System.out.println("解析后日期格式" + parse);

int pageCurrent = Integer.parseInt("" + param.get("pageCurrent"));

int pageSize = Integer.parseInt("" + param.get("pageSize"));

if (pageCurrent == 0) {

pageCurrent = 1;

}

if (pageSize == 0) {

pageSize = 10;

}

return logService.getLog(pageCurrent, pageSize, user, parse);

}

Service层代码:

@Autowired

SysLogDao logdao;

/***

* 根据日期或者用户查询

*/

@Override

public PageObject getLog( int pageCurrent, int pageSize,String user,Date date) {

PageObject pageObject = new PageObject();

// 设置当前页

pageObject.setPageCurrent(pageCurrent);

// 设置每页显示的条数

pageObject.setPageSize(pageSize);

// 设置总记录数

Map map=new HashMap();

map.put("user", user);

map.put("date", date);

int count = logdao.getLogCount(user,date);

System.out.println("=============");

System.out.println("总条数"+count);

pageObject.setPageCount(count);

// 设置总页数

int page = count % pageSize == 0 ? count / pageSize : (count / pageSize) + 1;

pageObject.setRowCount(page);

// 设置每页显示数据集合

// 开始的记录数

int start = (pageCurrent - 1) * pageSize;

System.out.println(start+"-"+pageSize);

List byPage = logdao.getLog( start, pageSize,user,date);

pageObject.setRecords(byPage);

System.out.println(start+"-"+byPage);

return pageObject;

}

Mapper.xml代码如下:

select count(*) from sys_login_log

and login_user=#{user}

and log_date=#{date}

select * from sys_login_log

and login_user=#{user}

and log_date=#{date}

limit #{start},#{pageSize}

java代码实现分页_Java分页实现(示例代码)相关推荐

  1. java学习 类变量 类方法_这篇文章主要介绍了JAVA类变量及类方法代码实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下类变量(...

    这篇文章主要介绍了JAVA类变量及类方法代码实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 类变量(static) 类变量是该类的所有对象共 ...

  2. java线程本地变量_Java并发编程示例(九):本地线程变量的使用

    这篇文章主要介绍了Java并发编程示例(九):本地线程变量的使用,有时,我们更希望能在线程内单独使用,而不和其他使用同一对象启动的线程共享,Java并发接口提供了一种很清晰的机制来满足此需求,该机制称 ...

  3. 售后退款的java代码_SpringBoot 微信退款功能的示例代码

    一:微信支付证书配置 二:证书读取以及读取后的使用 package com.zhx.guides.assistant.config.wechatpay; import org.apache.commo ...

  4. java memento_Java备忘录(Memento)模式实现的示例代码

    Java备忘录(Memento)模式实现的示例代码 /** * 数据对象 * @author stone * */ public class DataState { private String ac ...

  5. java 静态代码块 作用域_java static关键字和代码块

    static关键字 为什么需要学习static关键字? 针对某一个变量属于类而不属于某一个具体的对象的时候,我们可以考虑使用static关键字 static概述: 多个对象共享同一份数据 static ...

  6. ajax异步传输代码,Ajax同步与异步传输的示例代码

    这篇文章主要是对Ajax同步与异步传输的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 代码如下: //同步传输模式 function RequestByGet(nProductte ...

  7. 微软一站式示例代码库 2012 年2月示例代码更新。8个全新示例为您的开发保驾护航...

    微软一站式示例代码库2012年2月新代码示例发布.我们发布了8个全新的示例代码,内容包含Windows Azure, Directory Services, Hyper-V, TFS, WDK和Win ...

  8. 图片自动翻转css代码,用css实现图片翻转(示例代码)

    简介这篇文章主要介绍了用css实现图片翻转(示例代码)以及相关的经验技巧,文章约1193字,浏览量447,点赞数1,值得参考! 用css实现图片翻转 .flip-container { perspec ...

  9. 下雪html特效代码,JavaScript 实现下雪特效的示例代码

    直接上代码 下雪效果实现 body,html{ overflow: hidden; } var snowflakes = { arr:[],// 数组盛放元素 snowflake : [//雪花类型 ...

  10. html渐变线条代码,CSS3实现线性渐变用法示例代码详解

    前言 演示下太老版本浏览器的渐变实现了[IE9-]; IE9以前,渐变都是通过滤镜实现的,大体的写法就是这样; .testDiv { width:400px; height:400px; border ...

最新文章

  1. 详测 Generics Collections TList (6): Reverse、TrimExcess
  2. 记一次mpvue开发完整小程序相关笔记
  3. c语言的考试是操作电脑还是写试卷,C语言考试试卷都是基础的题目,由于本人没学过C语言,求各位帮忙, 爱问知识人...
  4. 文本相似度算法(余弦定理)
  5. C语言编译器有哪些?
  6. 聊聊 KVC 和 KVO 的高阶应用
  7. C#8.0宝藏好物Async streams
  8. 检测窥屏_开挂、狙击、窥屏?乱象丛生的炉石狂野天梯,到底怎么了?
  9. python︱apple开源机器学习框架turicreate中的SFrame——新形态pd.DataFrame
  10. Linux下源码安装ElasticResearch
  11. 关于数据库timestamp类型问题
  12. 字体编码—Unicode16进制编码转字符
  13. 接口是什么?什么是接口?
  14. 基于Python的指数基金量化投资 - 指数的净资产收益率计算
  15. httpd配置三种虚拟主机带访问控制
  16. 数字地、模拟地、信号地区分
  17. 登录滑块验证表单_如何构建双滑块登录和注册表单
  18. wince支持多线程编程吗_WinCE 多线程下绣花机运动控制的实现
  19. Smartline IE V3 触摸屏项目下载的具体步骤以及注意事项
  20. 我的驾驶证被扣30分,两个3分,4个6分,我应该怎么处理呢?

热门文章

  1. u盘遭受蠕虫 特洛伊木马攻击文件隐藏的解决办法
  2. 软件设计师-计算机系统知识
  3. 【时间序列分析】16.平稳序列的决定性
  4. 推荐|Java学习资料大全(电子书+视频)
  5. 我的博客文章快速索引
  6. 超纤商标为精美时尚服饰再添点睛之笔
  7. Tornado IOStream
  8. 词法分析器代码分析报告
  9. Xshell 5使用教程
  10. 西安电子科技大学出版社 线性代数 参考答案 刘三阳