java 分页查询语句_Java实现分页查询
MySQL分页语句:LIMIT M,N
M:开始记录的索引。从0开始的
N:每次查询多少条。
每次查10条:
查第一页的:SELECT * FROM table LIMIT 0,10;
查第二页的:SELECT * FROM table LIMIT 10,10;
为了在页面更好的展示,并且为了减少内存的占用率,不是一次性将数据从数据库中查出来,而是分批次去查。一般如下图显示:
分页类Page.java:
package com.cmcc.imark.util;
import java.util.List;
public class Page {
//DAO可以查出来
private List records;//存放分页记录
//界面可以传过来
private int currentPageNum;//当前页码
//DAO可以查出来
private int totalRecords;//总记录条数
private int pageSize = 5;//每页显示的条数
//算出来:根据总记录条数来算
private int totalPage;//总页数
//算出来:根据当前页码来算
private int startIndex;//每页开始的记录的索引
//记录显示的页码
private int startPage;
private int endPage;
//用户查询分页数据的请求的URL
private String url;
public Page(int currentPageNum,int totalRecords){
this.currentPageNum = currentPageNum;
this.totalRecords = totalRecords;
//计算总页数
totalPage = totalRecords%pageSize==0?totalRecords/pageSize:(totalRecords/pageSize+1);
//计算开始记录的索引
startIndex = (currentPageNum-1)*pageSize;
//计算开始和结束页码
if(totalPage<=9){//不足9页
startPage = 1;
endPage = totalPage;
}else{
startPage = currentPageNum-4;
endPage = currentPageNum+4;
if(startPage<1){
startPage = 1;
endPage = startPage+8;
}
if(endPage>totalPage){
endPage = totalPage;
startPage = endPage-8;
}
}
}
}DAO:
public int getTotalRecord(String table) {//一般的话,不带参数
String sql = "select count(*) as count from "+table;
Map map = findFirst(sql);
Object count = null;
for(String key:map.keySet()){
count = map.get(key);
}
return Integer.parseInt(count.toString());
}
public List findPageRecords(Class className,String sql,int startIndex, int pageSize) {//一般的话,就只有startIndex及pageSize两个参数
return find(className, sql,startIndex,pageSize);
}service层代码:
public Page findPageReocords(Class className,String sql,String num,String table) {
int pageNum = 1;//默认的页码
if(num!=null&&!num.trim().equals("")){
pageNum = Integer.parseInt(num);
}
int totalRecords = pageDao.getTotalRecord(table);
Page page = new Page(pageNum, totalRecords);
//查询分页记录
List records = pageDao.findPageRecords(className,sql,page.getStartIndex(), page.getPageSize());
page.setRecords(records);
return page;
}
public Page findAll(String num) {//这是实际的业务层继承了分页的service类
String sql = "select id,prizeName from prize limit ?,?";
return findPageReocords(Prize.class,sql,num, "prize");
}
控制层:
@RequestMapping("/prizeListUi")
public String prizeListUi(Model model,String num){
System.out.println("prizeListUi");
Page page = this.prizeService.findAll(num);
page.setUrl("/prizeController/prizeListUi?");
model.addAttribute("page",page);
return "/back/prize/prizeList";
}前端页面的话,直接可以使用jstl取出page中的属性即可。
java 分页查询语句_Java实现分页查询相关推荐
- R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库、将dplyr语法查询语句翻译为SQL查询语句
R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库.将dplyr语法查询语句翻译为SQL查询语句 目录
- 加sql查询语句导出_搞不懂这些查询语句,SQL简单查询也无法从入门到熟练
大纲: 一.基本的查询语句 二.指定查询条件 三.注释和SQL语句注意事项 四.运算符 五.谓词 一.基本的查询语句 从表中选取数据时需要使用select语句,也就是只从表中选出(select)必要数 ...
- java中sql查询语句_JAVA中用 SQL语句操作小结
1.添加记录(INSERT) 使用SQL语句的INSERT命令可以向数据库中插入记录,INSERT命令的基本形式为: INSERT INTO 表名 [(字段名1,字段名2-)] VALUES (值1, ...
- java 字符串模糊匹配_Java实现伪查询(全匹配+模糊匹配)
Java实现伪查询(全匹配+模糊匹配) 在项目中一直习惯了框架下[springboot+mybatis]的增删改查,然后领导突然给了一个需求,让我先弄一些假数据出来,用于页面的展示,业务啥的也没说,咱 ...
- java数据库查询语句题_数据库查询语句面试
Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题 ...
- java操作mongodb查询总数_java操作mongodb——查询数据
field为查询字段,value为查询值,也可以通过过滤器Filters,Filters提供了一系列查询条件的静态方法 相等 - = FindIterable iter = doc.find(new ...
- php 中 sql 查询语句怎么写,sql查询语句有哪些
sql查询语句:1.查看表结构[SQL>DESC emp]:2.查询所有列[SQL>SELECT * FROM emp]:3.查询指定列:4.查询指定行:5.使用算术表达式:6.使用逻辑操 ...
- MySQL数据库高级SQL查询语句(单表查询,多表联合查询)
目录 SQL查询语句 基础查询 条件查询 模糊查询 字段控制查询 排序 聚合函数 分组查询 having子句 limit分页查询 多表连接查询 SQL查询语句 数据查询语言. 数据库执行DQL语句不会 ...
- java中sql语句_java中sql语句的编写规则
java中sql语句的编写规则 发布时间:2020-06-26 15:11:11 来源:亿速云 阅读:143 作者:Leah 这期内容当中小编将会给大家带来有关java中sql语句的编写规则,文章内容 ...
最新文章
- python 往excel 里面写数据
- mysql 5.7 多实例主从_mysql-5.7.20源码安装 + 多实例 + 主从复制
- BZOJ 2956 模积和(分块)
- No PIL installation found INFO:superset.utils.screenshots:No PIL installation found
- 洗被套的时候洗衣机里面不要再放其他东西
- matlab信息隐藏算法,实验四--基于DCT域的信息隐藏算法
- CCNA认证(2)--网络互联基础
- Android的MediaPlayer架构介绍
- C语言基础专题 - 指针(编写中)
- Vue 项目优化,持续更新...
- flask-login
- 频率采样型滤波器matlab,频率采样法设计带通滤波器matlab.doc
- 烽火通信 c语言 笔试,C语言嵌入式笔试题目及参考答案-烽火通信.doc
- 思科模拟器完成实验报告
- struts标签+jstl标签之国际化实例
- FPGA-10:设计个简单的cpu(真的简单!)
- 电阻、电容及电感的高频等效电路及特性曲线
- 禅道开源版16.2,解决LDAP插件无法使用的问题
- 2022年的第一个夕阳
- java中强耦合是什么意思_什么是Java程序的耦合
热门文章
- FX5U GX WORKS3平台编码器+modbus控制台达变频器 多段速 案例实现10个位置的定位
- 【LeetCode】62、63
- Delphi制作注册机
- 如何获取音乐的url地址
- 管理咨询的基本方法[z]
- 【隐马尔可夫模型】维特比算法matlab实现
- 彻底解决IOS HTML页面上光标跳行、光标不跟随页面问题
- Linux入门【第二回】 基本指令(相对路径,绝对路径)
- “数字裂变”宇宙,华为云与和伙伴组成“银河护卫队”
- C语言清除双斜杠注释,c语言删除注释 - 盖娅 - OSCHINA - 中文开源技术交流社区