java分页sql语句_「sql分页」sql语句 实现分页 - seo实验室

news/2024/5/20 11:31:54/文章来源:https://blog.csdn.net/weixin_42191480/article/details/114620805

sql分页

sql语句 实现分页

/*

分页思想:比如你要每页获取10条记录,当你显示第5页的记录时,

也就是选取第40条至50条的记录.首先应该从所有的记录集中选取

50条记录,同时进行倒序,再从中选10条,就完成工作了。

下面是一个具体的例子,从Northwind的orders表中选取OrderID大于@OrderID的记录集,

分10条每页显示.

*/

--有查询条件的分页存储过程

create procedure dbo.Orders_GetByPaging

@OrderID int,   --条件

@PageSize int,  --每页的记录数量,比如10条,传参数时就是10

@CurrentPage int  --第N页,比如第5页,传参数就是5

as

declare @PageCount int --可分页的数量

declare @RowsCount int  --符合查询条伯的记录行总数

declare @LastRows int   --整除后余下来的记录数

declare @SelectRowsCount int --要选择的行数

set @RowsCount=(select count(*) from dbo.Orders where OrderID>@OrderID)

set @PageCount=@RowsCount/@PageSize   --看下能分多少页

set @LastRows=@RowsCount%@PageSize

set @SelectRowsCount=@PageSize   --给要选取的行数赋值,如参数是10,就是每页10条记录

if(@LastRows>0)--当整除后还剩的记录数,比如总有95条记录符合,那就可以分10页,最后一页是5条记录

begin

set @PageCount=@PageCount+1  --如果不能整除时要多加一页

if(@CurrentPage>=@PageCount)  --如果选择的是最后一页时

set  @SelectRowsCount=@LastRows  --比如95条记录,第10页只能是5条记录

end

declare @SelectStr varchar(5000)

set @SelectStr='select top '+Convert(nvarchar(10),@SelectRowsCount)+'

* from

(select top '+Convert(nvarchar(10),(@CurrentPage)*@PageSize)+' * from

(select * from dbo.Orders where OrderID>'+Convert(nvarchar(10),@OrderID)+') as t1 order by OrderID asc) as t2 order by OrderID desc'

execute(@SelectStr)

======================

在SQL Server中要实现sql分页,需要使用子查询来获取上一页的数据进行对比,进而获取最新的数据。使用子查询获取分页数据的语法格式如下:

"SELECT TOP [pageSize] * FROM [table] WHERE id NOT IN(

SELECT TOP [preNum] id FROM [table] ORDER BY ID DESC) ORDER BY ID DESC";

a. pageSize:数据分页的分页大小。

b. preNum:上一页数据查询的起始范围。

c. table:数据表名称。

例如要从数据库的第10条数据开始查询5条数据,编写的 SQL查询语句如下:

"SELECT TOP 5 * FROM tb_SQLServerFenye WHERE id NOT IN(

SELECT TOP 10 id FROM tb_SQLServerFenye ORDER BY ID DESC) ORDER BY ID DESC";

在JDBCDao数据库操作类的getPageArgs()方法中就使用getProducts()方法中就使用了该语法获取指定页码的分页数据,关键代码如下:

48304ba5e6f9fe08f3fa1abda7d326ab.png

// 定义查询数据库的SQL语句

String sql = "SELECT TOP " + pageSize + " * FROM tb_SQLServerFenye" +

" WHERE id NOT IN(SELECT TOP " + (page - 1) * pageSize + " id FROM" +

" tb_SQLServerFenye ORDER BY ID DESC) ORDER BY ID DESC";

stmt = conn.createstatement();

rs = stmt.executequery(sql); // 执行SQL并获取查询结果集

48304ba5e6f9fe08f3fa1abda7d326ab.png

3.实现过程

(1)创建操作数据库类UserDao。通过构造方法UserDao()加载数据库驱动,定义Connection()方法创建与数据库的连接,定义selectStatic()方法执行查询操作,定义closeConnection()方法关闭数据库。其关键代码如下:

48304ba5e6f9fe08f3fa1abda7d326ab.png

public class UserDao {

String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_database04"; //url,数据库

String username="sa"; //用户名

String password=""; //密码

private Connection con = null;

private Statement stmt = null;

private ResultSet rs = null;

public UserDao() { //通过构造方法加载数据库驱动

try {

class.forname("com.microsoft.jdbc.sqlserver.SQLServerDriver");

} catch (Exception ex) {

System.out.println("数据库加载失败");

}

}

public boolean Connection() { //创建数据库连接

try {

con = DriverManager.getConnection(url, username, password);

} catch (SQLException e) {

System.out.println(e.getmessage());

System.out.println("creatConnectionERROR!");

}

return true;

}

public ResultSet selectStatic(String sql) throws SQLException { //对数据库的查询操作

ResultSet rs=null;

if (con == null) {

Connection();

}

try {

stmt = con.createStatement(ResultSet.TYPE_scroll_sensitive,ResultSet.CONCUR_UPDATABLE);

rs = stmt.executeQuery(sql);

} catch (SQLException e) {

e.printstacktrace();

}

return rs;

}

public void closeConnection() { //关闭数据库的操作

if (con != null && stmt != null && rs != null) {

try {

rs.close();

stmt.close();

con.close();

} catch (SQLException e) {

e.printStackTrace();

System.out.println("Failed to close connection!");

} finally {

con = null;

}

}

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

(2)创建index.jsp页面。首先通过javaBean标签调用数据可靠操作类UserDao,并定义在分页输出数据中使用的参数;

48304ba5e6f9fe08f3fa1abda7d326ab.png

int CountPage = 0;

int CurrPage = 1;

int PageSize = 5;

int CountRow = 0;

%>

48304ba5e6f9fe08f3fa1abda7d326ab.png

然后,设置接收数据的参数,当第一次显示页面参数为空时,设为1。根据当前页面的参数获取到显示的数据集。代码如下:

48304ba5e6f9fe08f3fa1abda7d326ab.png

String StrPage = request.getparameter("Page");

if (StrPage == null) { //判断当页面的值为空时

CurrPage = 1; //赋值为1

} else {

CurrPage = integer.parseInt(StrPage); //如果不为空则获取该值

}

String SQL = "Select * From tb_ClassList"; //定义查询语句

ResultSet Rs = selectall.selectStatic(SQL); //执行查询语句

Rs.last(); //获取查询结果集

int i = 0; //定义数字变量

CountRow = Rs.getRow(); //获取查询结果集的行数

CountPage = (CountRow / PageSize); //计算将数据分成几页

if (CountRow % PageSize > 0) //判断如果页数大于0

CountPage++; //则增加该值

Integer n = (CurrPage - 1) * 5 + 1; //定义变量上一页的结束值

SQL = "select top 5 * from tb_ClassList where CID>=" + "("

+ "Select Max(CID) From (Select top " + n.toString()

+ " * From tb_ClassList) as Class" + ")";

Rs = selectall.selectStatic(SQL); //执行查询语句

while (Rs.next()) { //循环输出查询结果

%>

}

selectall.closeConnection(); //关闭数据库

%>

48304ba5e6f9fe08f3fa1abda7d326ab.png

设置下一页、上一页和最后一页超级链接,链接到index.jsp页面,指定Page作为栏目标识,将页数作为参数值,代码如下:

48304ba5e6f9fe08f3fa1abda7d326ab.png

[/] 每页5条 共条记录

1) { %>

上一页

下一页

最后一页

相关阅读

目录

1.首先这个Myeclipse的包名以及一些实现的类(这样子写是我的习惯)

2.接下来我们创建数据库(MySQL)

3.在数据库里面添加数

目录

前言:

游标简介:

游标的管理:

1.声明游标

2.打开游标

3.读取游标

4.关闭游标

5.释放游标

举个综合的例子:

前言:

select语句

delete from

ups_role_permission_dataparams

where role_id = #{roleId,jdbcTy

1、概述“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小

新建一个数据库 ljwcreate   database ljw;[sql] view plain copy use ljw;  select * from user;  效果如上图,最后用数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_742303.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

花瓣网服务器维护一个月,花瓣网维护网站推荐-只需要这一个网站就够了

推荐一款非常实用的设计师导航,可以说是自己目前用过最好用的设计师导航。里面精选推荐了大量优秀网站,包含高清图库、灵感创意、素材资源、摄影美图、教程文章、设计工具、绘画涂鸦、设计社区、字体下载、图标下载、前端学习、等等众多精选优质站点。目…

常州网站服务器_常州专业网站seo优化推广

网站seol31b10优化推广专业常州,SEO排名,它是指搜索引擎优化关键词排名。而影响到seo排名的因素有很多,比如说域名注册的时间,服务器的空间速度和稳定性,或者像是网站整体的结构,网站的内容等等都是影响了s…

ue怎样显示页面标签_网站各页面该如何布局关键词优化提升排名?

在网站优化中,最值得关注的一个事情就是关键词的布局,因为关键词的布局直接影响着网站的排名。那么怎样布局关键词才能提高页面和关键词的相关性,并提高网站排名呢?下面一起来看看。一、利用HTML标签布局关键词众所周知&#xff0…

直链下载Windows和office安装包,这个网站值得收藏

前面分享了一个下载Windows和office官方安装包的网站:我告诉你! 这个网站是通过磁力链接下载的,所以有时候会发现某些磁力链接下载非常慢。本期分享一个直链下载Windows和office官方安装包的网站。 网站名称:TechBench官方网址&am…

白捡的网站

contents:壁纸:软件:收藏夹:图片,视频素材:Pixabay:设计百宝箱:seeseed:优设导航:编程导航:HiPPTer:淘声网:熊猫搜书&…

快速搭建一个个人博客网站_Halo

搭建个人博客网站一、云服务器1.购买一个云服务器2.注册域名3.备案4.配置云服务器环境二、部署halo项目1.更新yum2.创建一个用户3.下载配置文件:4.运行Halo三、开启启动1.切换root用户2.下载 Halo 官方的 halo.service 模板一、云服务器 1.购买一个云服务器 2.注册…

Python爬虫学习(四)爬取图片素材网站素材

效果 目标网站 图片网站 目标接口: # GET 请求 https://www.logosc.cn/api/so/get?page0&pageSize20&keywords&categorylocal&isNeedTranslateundefined通过分析,我们可以知道应该可以修改page和pageSize参数来控制获取的图片。 导入…

微信小程序SEO优化

今年一月份上线的小程序,经过近一年的沉淀发酵,现在也进入了快速发展期。 在未来肯定会有越来越多的小程序诞生,小程序多了就需要搜索,那么如何让自己的小程序在众多的小程序中脱颖而出,这就需要小程序SEO优化。小编在…

支付宝手机网站支付java_java支付宝开发-02-手机网站支付

一、基础部分1.手机网站支付产品介绍1.1 阅读官方介绍: 手机网站支付产品介绍1.2 看完官方的介绍之后,可以做出如下总结:通过接入此接口,能让商家接入支付宝的支付功能。具体支付流程如下:(1)若用户已安装支付宝客户端…

企业网站制作代码_企业网站制作成什么样才符合趋势?

点击上方关注我们吧企业网站制作成什么样才符合趋势? 每个想找网站制作公司制作网站的企业,都想着做个符合发展趋势的网站。那么,什么样的企业网站才符合未来发展的趋势呢?或者说企业网站制作的未来趋势都有哪些呢?我们…

Django网站开发 01.Web网站与前端HTML标签

浏览器交互流程 1.快速开发网站 在Pycharm控制台输入: pip install flask 新建一个web.py,编写一个基础网站: web.py from flask import Flaskapp Flask(__name__)app.route("/show/info") def index():return "666"i…

Django网站开发 03.安装Django模块并创建App、运行与关闭

1.在Pycharm控制台输入指令 pip install django之后在检查是否有如下两个文件: 都有的话说明安装成功了。 2.创建项目 1.确定项目放在哪一个目录并进入该文件夹 2.cmd进入控制台 3.控制台输入执行以下指令形式 django-admin.exe的安装路径 startproject 项目…

Django网站开发 02.CSS层叠样式表(Cascading Style Sheets)

1.CSS三种嵌入方式 1.1在标签上 style"" <img src"... " style"height : 100px"/> <div style"color :red; ">中国联通</div>1.2在html的head部分里写style标签&#xff0c;有利于代码的复用。 <!DOCTYPE htm…

网站搭建的理解与流程

搭建网站流程 简单来说搭建网站包括以下这些步骤 ①注册域名 ②购置服务器 ③ICP备案 ④公安备案 ⑤对服务器进行相应设置、配置服务器环境、部署软件、将网站相关文件置于空间&#xff08;部署到服务器&#xff09;等等 ⑥通过DNS将域名绑定至服务器&#xff08;域名通…

在WordPress搭建的网站上添加看板娘

看板娘涉及 Live2D 技术&#xff0c;简单来说就是用许多连续的图像和建模在 2D 上做出动态的效果&#xff0c;有兴趣可以自行上网了解&#xff0c;效果如下 接下来是在 WordPress 搭建的网站上添加看板娘的方法 &#x1f4d1;对应 本文学习自《WordPress博客添加看板娘》 https…

在WordPress网站上支持Markdown、LaTeX

支持 Markdown Markdown 是一种轻量级标记语言&#xff0c;它允许人们使用易读易写的纯文本格式编写文档 Markdown 样例代码和效果图如下 在 WordPress 上安装 WP Githuber MD 插件即可支持使用 Markdown 撰写并发布文章 &#x1f4e6;资源 WP Githuber MD 下载&#xff08;二…

在WordPress网站上支持绘制流程图、状态图、时序图、甘特图等图

是否日常为了频繁绘制流程图、状态图、时序图、甘特图等图而感到麻烦&#xff1f;我们可以通过一定的代码转换成这些图从而简化工作量 Mermaid&#xff0c;即mermaid.js&#xff0c;是一个用于画流程图、状态图、时序图、甘特图等图&#xff0c;使用JavaScript进行渲染的库 M…

在WordPress网站上支持代码高亮(代码着色)

代码高亮&#xff08;代码着色&#xff09;就是指让代码中不同语句根据类别显示不同的颜色&#xff0c;从而增强可读性&#xff0c;而不是干巴巴一片黑色。我们可以通过Hightlight或Prism使网页支持代码高亮&#xff0c;在这里笔者使用了Prism Prism&#xff0c;即prism.js&am…

在WordPress网站上添加网页加载进度条和文章阅读进度条

网页加载进度条 我们可以借助Pace来添加网页加载进度条 Pace&#xff0c;即Pace.js&#xff0c;是一个能够显示页面记录加载的状态以及进度情况的JavaScript插件 其涵盖了不同颜色和多种样式的动画效果&#xff0c;可以在官网上查看不同颜色与样式下的动画效果 。&#xff0…

在WordPress网站上添加鼠标点击特效和网页背景特效

想在网页上实现鼠标点击特效和网页背景特效吗&#xff1f;快来看看&#xff01; 鼠标点击特效 鼠标点击特效已经是被网络上各博主已经玩烂的东西了&#xff0c;不过笔者在此处还是想记录一下 笔者在这里给出两种鼠标点击特效&#xff1a;循环文字词语点击特效和随机二进制数…