`

MySQL实现分页技术

阅读更多
先给出servlet
package com.ourchr.shop.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ourchr.shop.bo.ProductBO;
import com.ourchr.shop.entity.Product;

public class Product_listServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
String sPageNow = request.getParameter("pageNow");
int rowCount = new ProductBO().getRowCount();
int pageNow=1;
int pageSize = 5;
int pageCount;
if(sPageNow !=null){
pageNow = Integer.parseInt(sPageNow);
}
List<Product> products = new ProductBO().getAllProducts(pageNow,pageSize);
if(rowCount % pageSize ==0){
pageCount = rowCount/pageSize;
}else{
pageCount = rowCount/pageSize+1;
}
request.setAttribute("pageNow", pageNow);
request.setAttribute("pageCount", pageCount);
request.setAttribute("pageSize", pageSize);
request.setAttribute("rowCount", rowCount);
request.setAttribute("products",products);
request.getRequestDispatcher("/product_list.jsp").forward(request, response);
}

}
在给出jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
<title></title>
<link rel="stylesheet" href="../css/drp.css">
<script type="text/javascript" src="js/small_window.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.7.2.custom.min.js"></script>

<script type="text/javascript" src="js/jquery-1.4.min.js"></script>
<style type="text/css">
/* CSS Document */
body {
font: normal 11px auto "Trebuchet MS", Verdana, Arial, Helvetica,
sans-serif;
color: #4f6b72;
background: #E6EAE9;
}

a {
color: #c75f3e;
}

#mytable {
width: 100%;
padding: 0;
margin: 0;
}

caption {
padding: 0 0 5px 0;
width: 700px;
font: italic 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
text-align: right;
}

th {
font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
color: #4f6b72;
border-right: 1px solid #C1DAD7;
border-bottom: 1px solid #C1DAD7;
border-top: 1px solid #C1DAD7;
letter-spacing: 2px;
text-transform: uppercase;
text-align: left;
padding: 6px 6px 6px 12px;
background: #CAE8EA no-repeat;
}

/*power by www.winshell.cn*/
th.nobg {
border-top: 0;
border-left: 0;
border-right: 1px solid #C1DAD7;
background: none;
}

td {
border-right: 1px solid #C1DAD7;
border-bottom: 1px solid #C1DAD7;
background: #fff;
font-size: 11px;
padding: 6px 6px 6px 12px;
color: #4f6b72;
}

/*power by www.winshell.cn*/
td.alt {
background: #F5FAFA;
color: #797268;
}

th.spec {
border-left: 1px solid #C1DAD7;
border-top: 0;
background: #fff no-repeat;
font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
}

th.specalt {
border-left: 1px solid #C1DAD7;
border-top: 0;
background: #f5fafa no-repeat;
font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
color: #797268;
}

/*---------for IE 5.x bug*/
html>body td {
font-size: 11px;
}

body,td,th {
font-family: 宋体, Arial;
font-size: 12px;
}
.jumpTO{
width:25px;

}
</style>
</head>
   <body class="body1">
<table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr>

<td width="28">
<img src="images/index_32.gif" width="28" height="29" />
</td>
<td background="images/index_34.gif" style="padding-left: 10px;"
style="font-size: 12px">
<b>商品管理>>商品列表</b>
</td>
</tr>
</table>
<table width="100%" cellspacing="0" id="mytable">
<tr style="background-color: gray">
<th width="5%" scope="col">
编号
</th>
<th width="15%" scope="col">
商品名称
</th>
<th width="10%" scope="col">

添加者
</th>
<th width="15%" scope="col">
商品货号
</th>
<th width="10%" scope="col">
市场价
</th>
<th width="10%" scope="col">
进货价
</th>

<th width="10%" scope="col">
经销商价
</th>
<th width="10%" scope="col">
商品图片
</th>
<td width="15%" scope="col">
操作
</td>
</tr>
<c:forEach items="${products}" var="product">
<tr>
<td>${product.id}</td>
<td>${product.name }</td>
<td>${user.realName}</td>
<td>${product.number }</td>
<td>${product.marketPrice }</td>
<td>${product.purchasePrice }</td>
<td>${product.salePrice }</td>
<td>查看</td>
<td>
<a href="#">修改</a>
<a href="#">删除</a>
</td>
</tr>
</c:forEach>
</table>
<table width="100%" height="30" border="0" align="center"
cellpadding="0" cellspacing="0" class="rd1">
<tr>
<td nowrap class="rd19">
<DIV class=pagebar>
<DIV id=pager
style="PADDING-RIGHT: 10px; MARGIN-TOP: 10px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; HEIGHT: auto">
<c:if test="${pageNow !=1}">
<A class=next href="product_list.do?pageNow=${pageNow-1}">上一页</A>
</c:if>
总计
<B>${rowCount}</B> 个记录 当前
<SPAN class=page_now>${pageNow}/${pageCount }</SPAN>页
<c:if test="${pageNow}!=${pageCount}"></c:if>
<A class=next href="product_list.do?pageNow=${pageNow+1}">下一页</A>
<FORM ACTION="product_list.do">
<input class="jumpTO" type="text" name="pageNow"/>
<input type="submit" value="go"/>
</FORM>
</DIV>
</DIV>
</td>
</tr>
</table>




  </body>
</html>
当然数据库自己可以建立下!这里就忽略了,主要是方法掌握就行了!
对了还有dao层:
package com.ourchr.shop.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.ourchr.shop.dao.IProductDAO;
import com.ourchr.shop.entity.Product;
import com.ourchr.shop.util.ConnectionProvide;
import com.ourchr.shop.util.JDBC;

public class ProductDAO implements IProductDAO{
Connection con = null;
PreparedStatement ps = null;
ResultSet  rs = null;
public void close(){
if(ps !=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps !=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(con !=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}

}
public int findRowCount() {
int rowCount =0;
con = ConnectionProvide.getConnection();
try {
ps = con.prepareStatement("select count(*) from product");
rs = ps.executeQuery();
if(! rs.next()){
return 0;
}
rowCount = rs.getInt(1);
} catch (SQLException e) {

e.printStackTrace();
}
return rowCount;
}
public List<Product> findAllProducts(int pageNow,int pageSize) {
List<Product> products = new ArrayList<Product>();
con =new JDBC().getConnection() ;
String sql ="select * from product limit ?,?";
try {
ps = con.prepareStatement(sql);
ps.setInt(1, pageSize*(pageNow-1));
ps.setInt(2, pageSize);
rs = ps.executeQuery();
while(rs.next()){
Product p = new Product();
p.setId(rs.getInt("pId"));
p.setName(rs.getString("pName"));
p.setNumber(rs.getString("product_no"));
p.setMarketPrice(rs.getFloat("market_price"));
p.setPurchasePrice(rs.getFloat("purchase_price"));
p.setSalePrice(rs.getFloat("sale_price"));
p.setImage(rs.getString("image"));
products.add(p);
}
return products;
} catch (SQLException e) {

e.printStackTrace();
}
return products;
}
// public static void main(String[] args) {
// List<Product> products =new ProductDAO().findAllProducts(3, 2);
// for(Product product:products){
// System.out.println(product.getId());
// }
// }
}
我使用的是连接池,大家可以随意
分享到:
评论

相关推荐

    基于PHP+MySQL实现分页技术

    基于PHP+MySQL实现分页技术 一、 开发环境 1、环境搭建:Windows 7+Apache 2.4.18+MySQL 5.7.11+PHP 7.1.0。 2、文本编辑器:Sublime 3。 二、主要技术 本案例使用PHP 7中的PDO数据对象对MySQL数据库进行操作,通过...

    基于PHP+MySQL实现分页技术1

    在基于PHP+MySQL实现分页技术的过程中,我们首先需要了解基本的开发环境和涉及的主要技术。以下是详细的知识点解析: 1. **开发环境**: - 操作系统:Windows 7 - 服务器:Apache 2.4.18 - 数据库:MySQL 5.7.11...

    mysql数据库实现分页

    二、SQL语句实现分页 在MySQL中,最常用的分页查询方式是使用`LIMIT`和`OFFSET`关键字。`LIMIT`用于指定每页显示的记录数,而`OFFSET`用于跳过多少条记录,达到从特定位置开始返回结果的目的。 例如,要获取第2页,...

    Oracle,SQl,MySql实现分页查询

    ### Oracle、SQL、MySQL 实现分页查询方法详解 在数据库操作中,分页查询是一项非常重要的技术,尤其是在处理大量数据时。本文将基于提供的文件信息,深入探讨三种不同的分页查询方法及其在Oracle、SQL Server...

    mysql存储过程实现分页

    ### MySQL存储过程实现分页 #### 背景与需求 在数据库操作中,分页是一种常见的需求,尤其是在处理大量数据时。通过分页技术,可以有效地减少每次查询的数据量,提高系统的响应速度和用户体验。MySQL作为一种广泛...

    mysql分页 jsp实现 servlet+javabean+jsp三级架构

    然后,文章详细介绍了如何使用Java实现分页技术,包括定义分页接口、实现分页接口、连接数据库等步骤。 一、分页技术的重要性 在软件开发中,分页技术是一个非常常用的功能,特别是在处理大量数据时。例如,在公告...

    mysql数据库实现的分页javaWEB开发实现

    本教程将以MySQL数据库为背景,结合Java技术,详细介绍如何实现分页功能。 首先,我们要了解分页的基本概念。分页是将数据库查询结果分割成若干个页面进行显示,每个页面包含一定数量的数据记录。这有助于减少网络...

    jsp +mysql+分页

    标题中的"jsp +mysql+分页"涉及到的是Web开发中的几个关键概念,主要集中在Java服务器页面(JSP)、MySQL数据库以及分页技术的应用。这里我们将深入探讨这些知识点。 首先,JSP(JavaServer Pages)是一种动态网页...

    C++实现MySQL分页查询

    本篇文章将深入探讨如何利用C++实现MySQL的分页查询功能,这对于处理大量数据时提高系统性能和用户体验至关重要。 首先,我们需要引入MFC(Microsoft Foundation Classes)库,这是一个由Microsoft为Windows平台...

    html+js+php+mysql实现分页

    本示例通过HTML、JavaScript、PHP和MySQL四者结合,实现了一个简单的分页系统,非常适合初学者进行学习。 首先,HTML(超文本标记语言)是网页的基础结构,它定义了网页的布局和内容。在分页场景中,HTML通常会包含...

    mySql与oracle分页技术

    本文将深入探讨MySQL与Oracle两种常用的数据库管理系统中的分页技术。 首先,我们来看MySQL的分页技术。MySQL提供了`LIMIT`子句来实现分页查询。`LIMIT m, n`语句用于限制查询结果的数量,其中`m`是起始索引,`n`是...

    jq.ajax+php+mysql实现分页显示数据

    总结来说,实现“jq.ajax+php+mysql实现分页显示数据”的过程主要包括:前端使用jQuery的AJAX发送请求,PHP后端处理请求并从MySQL数据库获取分页数据,再将数据转化为JSON返回给前端,前端解析JSON并动态更新页面。...

    php+mysql数据分页函数

    在MySQL中,通常使用`LIMIT`和`OFFSET`关键字来实现分页。`LIMIT`用于指定每页显示的数据数量,`OFFSET`则用于指定从数据集中的哪个位置开始获取数据,以实现不同页码的切换。 下面是一个基本的PHP分页函数示例,该...

    java、mysql分页技术

    在MySQL中,我们可以使用`LIMIT`和`OFFSET`关键字来实现分页。例如,`SELECT * FROM table LIMIT pageSize OFFSET pageIndex`,其中`pageSize`是每页显示的数据条数,`pageIndex`是当前页码减1后的值。 Java作为...

    accss, mysql asp通用分页自定义分页样式

    这里的"accss,mysql,asp通用分页,自定义分页样式"就是一个关于如何在ASP(Active Server Pages)环境下,结合Access和MySQL数据库实现分页功能,并且自定义分页样式的主题。 首先,让我们从数据库层面理解。...

    PHP+MYSQL分页代码

    在网页开发中,数据量较大的情况下,为了提高用户体验和页面加载速度,通常会采用分页技术来展示数据。本主题“PHP+MYSQL分页代码”着重讲解如何在PHP后端和MySQL数据库配合下实现高效、实用的分页功能。下面我们将...

    JAVA+JSP+MYSQL分页

    本主题主要关注使用JAVA、JSP以及MYSQL来实现分页功能,特别是通过调用MYSQL的存储过程来优化这一过程。 首先,JAVA作为后端开发语言,负责与数据库交互,处理业务逻辑。在JAVA中,我们可以使用JDBC(Java Database...

    jsp 实现分页+mysql

    本教程将深入讲解如何使用JavaServer Pages(JSP)结合Servlet和MySQL数据库来实现分页功能。 首先,我们需要了解JSP的基本概念。JSP是一种基于Java的动态网页技术,它允许开发人员在HTML页面中嵌入Java代码,从而...

    jsp+servlet+mysql实现简单的增删改查+分页

    在IT领域,尤其是在Web开发中,"jsp+servlet+mysql实现简单的增删改查+分页"是一个常见的学习主题,适合初学者理解基础的后端开发流程。这个组合提供了从客户端到服务器端再到数据库的数据交互能力,同时也包含了...

    SpringMVC+MySQL实现的分页小项目

    在本项目中,"SpringMVC+MySQL实现的分页小项目",我们将探讨如何结合SpringMVC框架和MySQL数据库来构建一个具有分页功能的Web应用。SpringMVC是Spring框架的一个模块,专为处理HTTP请求和响应而设计,而MySQL则是一...

Global site tag (gtag.js) - Google Analytics