问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么用JSP实现MySQL的分页功能

发布网友 发布时间:2022-04-08 03:04

我来回答

5个回答

懂视网 时间:2022-04-08 07:25

<%@page import="java.sql.*"%> 2 <%@ page language="java" contentType="text/html; 3 charset=UTF-8" 4 pageEncoding="UTF-8" info="this is the company platform index page"%> 5 6 <!doctype html> 7 <html> 8 <head> 9 <meta charset="utf-8"> 10 <title>company</title> 11 12 <style> 13 body { 14 margin: 0 auto; 15 } 16 17 h1 { 18 margin: 0 auto; 19 line-height: 100px; 20 text-align: center; 21 color: #FFFFFF; 22 font-family: 微软雅黑; 23 } 24 25 .container { 26 width: 1000px; 27 margin: 0 auto; 28 background: none; 29 height: 1000px; 30 } 31 32 .cphead { 33 width: 1000px; 34 height: 100px; 35 background-color: #B40F0B; 36 margin: 0 auto; 37 } 38 39 .cpintro { 40 width: 1000px; 41 height: 15px; 42 margin: 0 auto; 43 line-height: 15px; 44 color: #B4120F; 45 } 46 47 .cplist { 48 width: 1000px; 49 margin: 0 auto; 50 height: 600px; 51 } 52 53 .cplist table { 54 width: 100%; 55 } 56 57 .cplist td { 58 height: 45px; 59 font-family: 微软雅黑; 60 font-size: 18px; 61 line-height: 40px; 62 } 63 64 .cptdleft { 65 width: 3%; 66 } 67 68 .cptdmiddle { 69 width: 85%; 70 } 71 72 .cptdright { 73 text-align: center; 74 } 75 76 .cplist a { 77 text-decoration: none; 78 color: #000000; 79 } 80 81 .cplist a:hover { 82 text-decoration: underline; 83 color: #F10A0E; 84 } 85 86 .bluefont { 87 color: blue; 88 font-style: bold; 89 } 90 91 .bluefont a { 92 text-decoration: underline; 93 color: blue; 94 } 95 </style> 96 97 </head> 98 99 <body> 100 <jsp:include page="cphead.jsp"></jsp:include> 101 <div class="container"> 102 <div class="cplist" id="cplistheight"> 103 <table> 104 <% 105 try { 106 //注册数据驱动 107 Class.forName("com.mysql.jdbc.Driver"); 108 //获取数据库连接 109 Connection conn = DriverManager.getConnection( 110 "jdbc:mysql://localhost:3306/db_gongxiang", "root", 111 "123456"); 112 //创建statement 113 Statement stmt = conn.createStatement(); 114 //执行查询 115 116 ResultSet rs = stmt.executeQuery("select * from tb_company"); 117 118 int intPageSize; //一页显示的记录数 119 int intRowCount; //记录的总数 120 int intPageCount; //总页数 121 int intPage; //待显示的页码 122 String strPage; 123 int i; 124 //设置一页显示的记录数 125 intPageSize = 10; 126 //取得待显示的页码 127 strPage = request.getParameter("page"); 128 //判断strPage是否等于null,如果是,显示第一页数据 129 if (strPage == null) { 130 intPage = 1; 131 } else { 132 //将字符串转换为整型 133 intPage = java.lang.Integer.parseInt(strPage); 134 } 135 if (intPage < 1) { 136 intPage = 1; 137 } 138 //获取记录总数 139 rs.last(); 140 intRowCount = rs.getRow(); 141 //计算机总页数 142 intPageCount = (intRowCount + intPageSize - 1) / intPageSize; 143 //调整待显示的页码 144 if (intPage > intPageCount) 145 intPage = intPageCount; 146 if (intPageCount > 0) { 147 //将记录指针定位到待显示页的第一条记录上 148 rs.absolute((intPage - 1) * intPageSize + 1); 149 } 150 //下面用于显示数据 151 i = 0; 152 while (i < intPageSize && !rs.isAfterLast()) { 153 %> 154 155 <tr> 156 <td class="cptdleft"><img src="images/14.jpg"></td> 157 <td class="cptdmiddle"><a 158 href="cp1.jsp?cpid=<%=rs.getString(1)%>" target="_blank"><%=rs.getString(2)%></a></td> 159 <td class="cptdright">2015-06-20</td> 160 161 </tr> 162 <% 163 rs.next(); 164 i++; 165 } 166 //关闭连接、释放资源 167 rs.close(); 168 stmt.close(); 169 conn.close(); 170 %> 171 <tr> 172 <td colspan="2" align="center">共<span class="bluefont"><%=intRowCount%></span>个记录,分<span 173 class="bluefont"><%=intPageCount%></span>页显示,当前页是:第<span 174 class="bluefont"><%=intPage%></span>页 <span class="bluefont"> 175 <% 176 for (int j = 1; j <= intPageCount; j++) { 177 out.print("  <a href=‘company.jsp?page=" + j 178 + "‘>" + j + "</a>"); 179 } 180 %> 181 </span> 182 183 <% 184 } catch (Exception e) { 185 e.printStackTrace(); 186 } 187 %> 188 </td> 189 </tr> 190 191 </table> 192 193 </div> 194 195 <jsp:include page="footer.jsp"></jsp:include> 196 </div> 197 </body> 198 </html> View Code

公司详情页代码cp1.jsp

技术分享
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>

<%
 // out.println( request.getParameter("cpid"));
 String aa= request.getParameter("cpid");
 //注册数据驱动
 Class.forName("com.mysql.jdbc.Driver");
 //获取数据库连接
 Connection conn = DriverManager.getConnection(
  "jdbc:mysql://localhost:3306/db_gongxiang", "root",
  "123456");
 //创建statement
 Statement stmt = conn.createStatement();
 //执行查询

 ResultSet rs = stmt
  .executeQuery("select * from tb_company where cpid="+aa);
 
 
%>

<%
 while (rs.next()) {
%>



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=rs.getString(2)%></title>
<!-- 
<script language="Javascript"> 
document.oncontextmenu=new Function("event.returnValue=false"); //禁止右键
document.onselectstart=new Function("event.returnValue=false"); //禁止复制文字
</script>
 -->
<style>
body {
 margin: 0 auto;
}

h1 {
 margin: 0 auto;
 line-height: 100px;
 text-align: center;
 color: #FFFFFF;
 font-family: 微软雅黑;
}

.cpname {
 margin: 0 auto;
 text-align: center;
 color: #B4120F;
}

.container {
 width: 980px;
 margin: 0 auto;
 background: none;

}

.cphead {
 width: 980px;
 height: 100px;
 background-color: #B40F0B;
 margin: 0 auto;
}

.cpintro {
 width: 980px;
 height: 15px;
 margin: 0 auto;
 line-height: 15px;
 color: #B4120F;
}

.cpdetail {
 width: 980px;
 margin: 0 auto;
 height: auto;
}

.cpdetailtop {
 width: 90%;
 font-size:18px;
 margin: 0 auto;
 font-size: 18px;
 line-height: 32px;
 font-family: 微软雅黑;
}

.cpimg {
 height:auto;
}


</style>
</head>
<body>
 <div class="container">
 <div class="cphead">
  <h1>全国居民主食加工企业展示平台</h1>
 </div>
 <div class="cpintro">
  <h3>
  <img src="images/16.jpg"> 全国居民主食加工企业
  </h3>
 </div>
 <hr width="980px" color="#B40F0B">
 <div class="cpdetail">
  <!--公司详情开始-->
  <h3>公司简介</h3>
  <div class="cpdetailtop">
  <!-- 上部div文字介绍-->

  <h3 class="cpname"><%=rs.getString(2)%></h3>
  <p>
          
   <%=rs.getString(3)%></p>


  </div>
  <div class="cpimg">
  <!--下部div图片滚动效果-->
  <h3>公司形象</h3>
  <table align="center">
   <tr>
   <td><img src="<%=rs.getString(4)%>" width="220px"
    height="150px" alt="图像加载失败"></td>
   <td><img src="<%=rs.getString(5)%>" width="220px"
    height="150px" alt="图像加载失败"></td>
   <td><img src="<%=rs.getString(6)%>" width="220px"
    height="150px" alt="图像加载失败"></td>
   <td><img src="<%=rs.getString(7)%>" width="220px"
    height="150px" alt="图像加载失败"></td>
   </tr>
  </table>
  </div>
 

 </div>
 <!--公司详情结束-->

 <jsp:include page="footer.jsp"></jsp:include>
 </div>

 <%
 }
 %>
</body>
</html>
View Code

现在处于jsp学习比较初级的阶段,代码中肯定有需要改进的地方,希望博客园的园友们不吝赐教.

jsp执行数据库查询并分页

标签:

热心网友 时间:2022-04-08 04:33

分页一般有两种方式,假如你每页只显示20条数据:
一 把所有的结果集都查询出来放到一个集合中,然后在第一页从该集合中取出前20条显示到页面上。点击下一页,再从该集合中取出21--40条显示到页面上。二 就是利用mysql的limit语句,把页码传到底层数据库,用户翻一页就执行一次查询,查出该页要显示的内容。
例如:select * from 表 limit 0,20;取1--20的记录
select * from 表 limit 20,20;取21--40的记录
其中limit后面的第一个参数是偏移量,相当于从哪行记录开始查询
第二个参数是要取出的记录数

我认为第二种方式比较好,因为假设结果集是1万条,如果用第一种方式一下子取到集合里再分页,太浪费资源。
而第二种方式,用户看翻10页它就查200条,看100页就取2000条。比较节省资源,反正用户都比较懒,一般都不会从第一页一直翻到最后一页 :)

这两种方式,网上代码有不少,这里就不多说了,祝你顺利!

热心网友 时间:2022-04-08 05:51

很简单,将所有记录存储到一个列表里面,这个列表有序号,通过页面大小将这个列表分割,每一个jsp页面都读取当前页面编号,最初这个编号设置为1,点击其他页时就用页面编号与页面大小通过计算出来。明白不?

热心网友 时间:2022-04-08 07:26

我也是网上找的,希望能帮到你。

大部分网站架构都是基于MVC,通常jsp作为显示层,或者用模板技术作为显示层,在此层将会显示查询记录总数,以及当前页,还有页面导航,以及显示改页的记录(Model),.servlet通常作为控制层,用于收集查询条件,调用业务Bean,,完成翻页查询,并将结果返回到显示层.对于分页来说,每层次的主要任务如下: * J5 r' G0 w" v4 s. b- E0 D4 T
显示层: 取出记录总数,并显示出来; 指示当前在第几页;显示翻页导航条,如象google那样的翻页,或者象yahoo那样的翻页风格;取出记录集,并显示出来,通常,一页显示10-30条,并且,这是可以配置的 - x* U& x4 @- p$ P" t
控制层:查询的时候,将用户输入的查询条将,通常表现形式是QueryValue放入会话中,以便下次翻页的时候重新取出查询条件;如果是第一次查询,调用业务Bean,需要查询记录总数,并查询出第一页的结果集,并传到显示层。如果是其后后的翻页,则需要调用业务Bean查询指定范围内的结果集,并传到显示层 4 U4 K7 q$ E7 M
业务Bean:业务Bean提供按照QueryValue查询出合乎条件总数
- E, Z; I( O# O: N4 N% E0 B" r8 g! X业务Bean提供按照QueryValue,以及 范围(startIndex,endIndex)查询合乎条件的结果集 ' W/ L& o0 ~$ p+ t; `$ D: }5 }5 k, I
现在举个例子,分别从业务Bean,控制层,显示层的具体实现来完成分页

热心网友 时间:2022-04-08 09:17

1、每次提取一部分数据(mysql中容易操作,已提供了现成的sql语句),这样占用的内存较少,但访问数据库的次数增加了,自然数据库负荷增加。
2、把数据一次性提取出来,放到session中,再按分页需求,依次在session中提取,数据量较大时建议不要使用,内存消耗太大。
3、使用第三方数据库操作框架,比如Hibernate,这样你需要花时间好好学习它了。
祝你成功!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
显卡降价矿难了!分享几个检测矿卡的实用软件 怎么分辨二手显卡刷bios 下文教你 怎么识别矿卡 鉴别矿卡的方法介绍 怎么设置小度在家回家视频通话? 贵阳砂岩雕塑厂有哪些 西安市长安二中附近有老年公寓没 来西安这么久了第一次租到性价比高的房子,松鼠公寓良心推荐_西安... 陕西省自强中等专业学校2024年学费多少 宝鸡市区有什么比较好的楼盘 乔安如何远程监控 哪个版本的&lt;&lt;国际金融&gt;&gt;最好? 在哪里下载高清篮球比赛视频 我儿子自杀死了买的骨灰盒小装不下骨灰又买了一个前天那个不要了对父亲有什么? 金融学教材推荐 我怎样才能下载到最新的NBA篮球赛视频 成都女孩佘艳的故事? 金融专业必须的教科书有哪些 殡仪馆是否可以办理惠民殡葬补贴? 国际金融的教材哪个版本好 求《国际金融新编第六版》全文免费下载百度网盘资源,谢谢~ 国际金融学的教材 求一个成都,或是南充,最好是成都,临时存放骨灰盒的地方,寺庙更好。 推荐篮球视频!推荐篮球视频下载网站! 听说成都文殊院阴气很重,庙下面就是地宫,放了很多死人骨灰盒,搞创收的。是不是真的呀 怎样下载篮球比赛短片 想请问一下成都昭觉寺有存放骨灰盒的地方吗? 甲功三项有两项偏低,不懂什么意思 甲状腺彩超重大,甲功检查最后两项超标,问题严重吗? 甲状腺B超结果为:甲状腺肿大;双侧甲状腺 甲功5项有2项异常,这个需要到医院确诊吗? 甲功五项有两项特高,是什么原因,需吃药 求英文版的NBA篮球比赛视频下载地 法律上对编造谣言的定义? 金融专业必须的教科书有哪些? 求北京奥运会篮球比赛决赛的高清录像,的下载地址 金融学看哪个教材比较好 谣言和流言的区别 巴金妻子逝世,为何巴金一直将妻子骨灰盒放在家里不安葬? 北京奥运会篮球比赛视频下载 什么牌子的咖啡好喝不苦涩? 丹霞地貌为什么叫丹霞? 工作地点选择,成都还是北京 流言和谣言有什么区别? 我想学习国际金融的知识,请推荐几本好的教材或书籍,谢谢! 百岁老人的爱恋,和妻子相伴近三十年,骨灰放枕边共眠,知道是谁吗?_百度... 什么是谣言的具体定义?什么人应该对谣言负责?本属无心之失,却造成谣言的效果,算什么? 跪求复旦博学金融学系列《国际金融新编(第5版)》电子版书籍免费网盘资源下载地址 中国的丹霞地貌为什么会形成,主要分布在哪里? 前端研发如何入门? 网络谣言到底是什么内容 丹霞地貌有什么特征?