狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

JSP+MYSQL+Java類優化分頁

JSP+MYSQL+Java類優化分頁

更新時間:2020-02-14 文章作者:未知 信息來源:網絡 閱讀次數:

在JSP中經常要用到查詢數據庫中的數據,同常我們的做法是使用SQL語句“select * from tablename order by id desc”,這樣的做法有一個缺點,當數據庫很大的時候查詢的速度會變的很慢,在ASP中有一種方法 "select top "&recpage&" * from tablename where id not in (select top "&(recpage*(currentpage-1))&" id from products order by id desc) order by id desc"其中recpage為每頁顯示個數, currentpage為當前頁數.不過在MYSQL數據庫中沒有“select top * " 語句,而可以代替的語句是”select * from tablename limit position, counter “position 指示從哪里開始查詢,如果是0則是從頭開始,counter 表示查詢的個數,通過JSP+JAVA查詢數據庫,查詢獲取的數據暫時存放在內存中在JSP中通過調取JAVA類,直接從內存中提取數據,速度有了很大提高。

  下面的例子是一個關于網友評論的部分程序,假如你有一個專門供網友瀏覽的網站,而現在又想和網友互動起來,加一個評論是不錯的想法,那么你可以把下面的程序加上,建一個表其中加一個photo_id字段和你的表關聯起來后,就可以讓網友對你的圖片點評了。

  Comment.java是一個評論的類

  //<--------Comment.java ------->
  package dbconnection;
  public class Comment
  {
  private String id;
  private String album_id;
  private String title;
  private String content;
  private String modi_time;
  private String user;
  public void setId(String ids)
  {
  this.id=ids;
  }
  public void setalbum_id(String album_ids)
  {
  this.album_id=album_ids;
  }
  public void setTitle(String titles)
  {
  this.title=titles;
  }
  public void setContent(String contents)
  {
  this.content=contents;
  }
  public void setModi_time(String modi_times)
  {
  this.modi_time=modi_times;
  }
  public void setUser(String users)
  {
  this.user=users;
  }
  public String getId()
  {
  return id;
  }
  public String getalbum_id()
  {
  return album_id;
  }
  public String getTitle()
  {
  return title;
  }
  public String getContent()
  {
  return content;
  }
  public String getModi_time()
  {
  return modi_time;
  }
  public String getUser()
  {
  return user;
  }
  }

   TestSql.java就是我們查詢數據庫要用到的類了,具體的調用請看下面的comment.jsp文件。

  /**
  * Title jsp+mysql優化分頁的例子
  * @author: cyd
  * Copyright: Copyright (c) 2003
  * @version 1.0
  * 日期 2004-9-22
  */

  //<--------TestSql.java ------->

  package dbconnection;
  import java.sql.*;
  import java.util.*;
  public class TestSql
  {
  Statement stmt=null;
  ResultSet rs=null;
  conn c=null;
  Comment comments[]=null;
  Vector v=null;
  int total;
  int PageSize;
  int PageCount;
  public TestSql(Connection cn) throws SQLException
  {
  stmt=cn.createStatement();
  }
  //查詢獲取記錄
  public Comment[] getComment(int pagesize,int page) throws SQLException
  {
  this.PageSize=pagesize;
  String sql="select * from comment order by id desc limit "+(page-1)*pagesize+","+pagesize;
  Comment comments[]=null;
  v=new Vector();
  try
  {
   rs=stmt.executeQuery(sql);
   while(rs.next())
   {
    Comment p=new Comment();
    p.setId(rs.getString("id"));
    p.setTitle(rs.getString("title"));
    p.setContent(rs.getString("content"));
    p.setModi_time(rs.getString("modi_time"));
    p.setUser(rs.getString("user"));
    v.add(p);
   }
  }
  catch(SQLException e)
  {
   System.err.println("err");
  }
  comments=new Comment[v.size()];
  v.copyInto(comments);
  return comments;
  }

  //獲取總記錄數
  public int getTotal()
  {
  return total;
  }
  //獲取總頁數
  public int getPageCount()
  {
  try
  {
   rs=stmt.executeQuery("select count(*) from comment ");
   rs.next();
   this.total=rs.getInt(1);
   this.PageCount=(rs.getInt(1)+PageSize-1)/PageSize;
  }
  catch(SQLException e)
  {
   System.err.println("err");
  }
  return PageCount;
  }
  //釋放資源
  public void close() throws SQLException
  {
  if (stmt != null)
  {
   stmt.close();
   stmt = null;
  }
  if (rs!=null)
  {
   rs.close();
   rs=null;
  }
  }
  }

  <!--comment.jsp -------------------------------------------------------------------->

  <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
  <%@ page import="java.io.*" %>
  <%@ page import="dbconnection.DBConnectionManager" %>
  <%
  DBConnectionManager connMgr;//這是數據庫連接池的類,具體源碼你可以在網找到。
  connMgr = DBConnectionManager.getInstance();
  Connection con = connMgr.getConnection("idb");//從連接池中獲的一個連接

  int CurrentPage=1;
  int intPageCount,intRowCount;
  if(request.getParameter("page")!=null)
  CurrentPage=Integer.parseInt(request.getParameter("page"));
  if(CurrentPage<1)
  CurrentPage=1;
  int intPageSize=5;//設置每頁顯示5條
  %>
  <html>
  <head>
  <title>Untitled Document</title>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <style type="text/css">
  <!--
  .style3 {color: #FF0000}
  body {
  margin-left: 0px;
  margin-top: 0px;
  margin-right: 0px;
  margin-bottom: 0px;
  background-color: #FFFDDF;
  }
  -->
  </style>
  <script language="javascript">
  function goto(frm)
  {
  var gourl ="comment.jsp?";
  gourl += "&page=" + (frm.page.value);
  var hid=parseInt(frm.hid.value);
  if(parseInt(frm.page.value)>hid||frm.page.value<=0){
  alert("錯誤!請確定你輸入的數字在1-"+hid+"之間");
  return false;
  }
  window.location.href(gourl);
  }</script>
  </head>
  <body>
  <%
  Comment[] p=null;
  TestSql ts=null;
  try
  {
  ts=new TestSql(con);
  p=ts.getComment(intPageSize,CurrentPage);//ts=.getComments(PageSize(每頁顯示個數),Page(頁數))
  intPageCount =ts.getPageCount(); //獲的頁數
  intRowCount=p.length;
  if(CurrentPage>intPageCount)
  CurrentPage = intPageCount;
  int total=ts.getTotal(); //獲取記錄總數
  %>
  <table width="748" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
  <td>
  <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
  <td height="17"><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#EBEADF">
  <tr>
  <td height="25" bgcolor="#A7E081"><div align="center" class="style3">網友評論</div></td>
  </tr>
  <!-- start loop by tr -------------------------->
  <%
  if(intRowCount>0)
  {
  for(int i=0;i<intRowCount;i++)
  {
  %>
  <tr>
  <td height="20">
  <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#EBEADF">
  <tr>
   <td height="20">  <img src="http://www.it.com.cn/f/edu/053/26/image/dot11.gif" width="9" height="9"> <%=p[i].getUser()%>于 < %=p[i].getModi_time()%> 留言 </td>
  </tr>
  <tr>
   <td bgcolor="#FBFBF9" style="padding:5px 5px 5px 5px;line-height:18px;"> <%=p[i].getContent()%></td>
  </tr>
  </table>
  </td>
  </tr>
  <%
  }
  }
  else
  {
  %>
  <tr>
  <td height="20" bgcolor="#EBEADF">
  <%
  out.print("   暫時沒有評論");
  }
  %>
  </td>
  </tr>
  <!-- end loop by tr -------------------------->
  </table></td>
  </tr>
  <tr>
  <td height="17" bgcolor="#FBFBF9">
  <div align="center">
  <form style="margin:0 0 0 0 ">
  <div align="center">第<%=CurrentPage%>頁  共<%=intPageCount%>頁  
  <%if(CurrentPage>1){%>
  <a href="comment.jsp?page=<%=CurrentPage-1%>">上一頁</a>  
  <%}else{%>
  上一頁  
  <%}%>
  <%if(CurrentPage>=intPageCount){%>
  下一頁
  <%}else{%>
  <a href="comment.jsp?page=<%=CurrentPage+1%>">下一頁</a>
  <%}%>
  跳至
  <input type="hidden" name="hid" value="<%=intPageCount%>">
  <input name="page" type="text" size="2" onChange="goto(this.form)">
  頁
  <input type="button" name="Button2" value="Go->" style="font-size:12px ">
  </div>
  </form>
  </div></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  </body>
  </html>
  <%
  }
  catch(Exception e)
  {
  e.printStackTrace();
  }
  finally{
  connMgr.freeConnection("idb", con);
  connMgr.release();
  ts.close();
  p=null;
  }
  %>

  注:win2000+tomcat5.0調試通過;Redhat9+tomcat5.0調試通過

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
一二三区精品视频| k8久久久一区二区三区| 综合婷婷亚洲小说| 国产欧美日韩另类一区| 欧美精品一区二区三区蜜桃视频| 日韩一区二区三| 在线综合视频播放| 欧美一级片在线观看| 欧美精品成人一区二区三区四区| 欧美日韩精品免费| 日韩欧美精品在线视频| 日韩视频中午一区| 2020日本不卡一区二区视频| 久久久久久久av麻豆果冻| 久久精品亚洲精品国产欧美| 国产拍欧美日韩视频二区| 一区在线中文字幕| 一区二区三区不卡视频在线观看 | 午夜伦理一区二区| 麻豆国产欧美一区二区三区| 激情综合网av| 91同城在线观看| 亚洲高清激情| 日本电影欧美片| 日韩一区二区视频在线观看| 久久亚洲春色中文字幕久久久| 欧美国产精品劲爆| 午夜成人免费电影| 国产美女精品人人做人人爽 | 久热国产精品| 91麻豆精品国产综合久久久久久| 2024国产精品| 亚洲在线观看免费视频| 蜜桃视频在线一区| 91最新地址在线播放| 99精品免费| 精品视频一区三区九区| 久久精品日产第一区二区三区高清版 | 亚洲一区二区三区免费在线观看 | 偷拍与自拍一区| 国产·精品毛片| 亚洲麻豆av| 欧美日韩高清不卡| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲欧洲一区二区天堂久久| 在线免费观看一区| 日本一区二区三区电影| 亚洲一二三四区| 懂色av一区二区夜夜嗨| 国产日韩亚洲| 26uuu亚洲综合色欧美| 午夜精品久久久久久久久久久 | 国内一区二区三区| 欧美日韩国产大片| 亚洲精品视频自拍| 成人精品免费看| 新67194成人永久网站| 久久亚洲私人国产精品va媚药| 亚洲国产美女搞黄色| voyeur盗摄精品| 色婷婷综合久久久久中文一区二区 | 精品一区二区三区在线播放| 极品av少妇一区二区| 7777精品伊人久久久大香线蕉| 亚洲人快播电影网| 99综合影院在线| 欧美男男青年gay1069videost| 亚洲三级电影网站| 91视频国产观看| 宅男噜噜噜66一区二区66| 亚洲国产日韩一级| 亚洲大片av| 亚洲大片一区二区三区| 国产成人免费高清| 久久综合婷婷| 亚洲一区二区精品久久av| 91在线porny国产在线看| 欧美日韩精品欧美日韩精品一综合| 亚洲欧美激情视频在线观看一区二区三区| 国产在线播放一区二区三区| 老司机午夜精品视频在线观看| 国产精品美女久久久久久2018 | 欧美性色黄大片| 亚洲午夜久久久久久久久电影院 | 亚洲精选国产| 国产免费成人在线视频| 成人免费毛片app| 欧美福利视频导航| 麻豆国产欧美日韩综合精品二区| 国产精品一区二区在线观看 | 亚洲激情自拍偷拍| 日韩午夜高潮| 亚洲精品水蜜桃| 亚洲福利国产| 亚洲精品免费一二三区| 精品91在线| 亚洲欧美怡红院| 91久久综合| 一区二区在线观看免费视频播放| 在线不卡欧美| 亚洲视频资源在线| 亚洲成人自拍视频| 亚洲欧美色图小说| 一本综合精品| 午夜久久福利影院| 日本韩国精品一区二区在线观看| 午夜激情综合网| 欧美性做爰猛烈叫床潮| 激情综合亚洲精品| 精品少妇一区二区三区日产乱码 | 久色成人在线| 精品无人码麻豆乱码1区2区| 欧美疯狂性受xxxxx喷水图片| 国产一区二区三区在线观看免费视频| 精品视频一区 二区 三区| 国产最新精品免费| 精品国产三级电影在线观看| 女同性一区二区三区人了人一| 亚洲国产精品v| 国产嫩草一区二区三区在线观看| 亚洲大片免费看| 欧美老年两性高潮| 91一区一区三区| 亚洲女与黑人做爰| 色猫猫国产区一区二在线视频| 国产露脸91国语对白| 精品国产电影一区二区| 国内精品嫩模av私拍在线观看| 亚洲精品一卡二卡| 在线一区二区三区四区五区| 国产99久久久精品| 国产精品情趣视频| 葵司免费一区二区三区四区五区| 激情综合色播激情啊| 久久久久国产一区二区三区四区| 亚洲精品九九| 国产原创一区二区| 国产精品色婷婷久久58| 一本一道波多野结衣一区二区| 成人午夜视频网站| 亚洲欧美一区二区三区国产精品| 在线免费亚洲电影| 欧美福利专区| 免费看日韩精品| 国产三级精品三级| 91福利在线观看| 国产精品成人一区二区网站软件 | 日本不卡一二三| 国产清纯在线一区二区www| 榴莲视频成人在线观看| 成人av在线网站| 天堂午夜影视日韩欧美一区二区| 精品剧情在线观看| 老妇喷水一区二区三区| 欧美精品导航| 国产美女娇喘av呻吟久久| 亚洲男女毛片无遮挡| 欧美大度的电影原声| 久久精品1区| 国产字幕视频一区二区| 精品一区二区国语对白| 亚洲精品视频在线观看免费| 日韩美女在线视频| 色综合久久久久| 在线观看日韩av电影| 成人污污视频在线观看| 麻豆久久久久久| 洋洋av久久久久久久一区| 久久这里只有精品首页| 欧美日韩国产在线播放网站| 日韩视频一区二区三区在线播放免费观看 | 国产成人免费视频网站高清观看视频 | 国产精品国产三级国产aⅴ入口| 91精品婷婷国产综合久久性色 | 亚洲精品中文字幕乱码三区 | 国产毛片精品国产一区二区三区| 一区二区三区不卡视频| 欧美国产97人人爽人人喊| 日韩欧美成人午夜| 欧美日韩你懂得| 久久另类ts人妖一区二区| 亚洲欧洲日本mm| 国产精品v一区二区三区| 99久久99久久综合| 成人性视频免费网站| 精品一区二区三区免费| 蜜臀av在线播放一区二区三区| 一区二区三区四区不卡视频| 国产精品日韩精品欧美在线| 精品国产乱码久久久久久久久| 欧美美女黄视频| 欧美日免费三级在线| 欧美在线999| 色乱码一区二区三区88| 久久久综合网| 在线一区二区三区四区五区| 一本大道久久精品懂色aⅴ| 久久精品毛片| 日本二三区不卡| 欧日韩精品视频|