本文实例为大家分享了jsp mysql实现网页的分页查询的具体代码,供大家参考,具体内容如下

一、实现分页查询的核心sql语句

(1)查询数据库的记录总数的sql语句:

select count(*) from  (表名);

(2)每次查询的记录数的sql语句:

其中:0是搜索的索引,2是每次查找的条数。

select * from 表名 limit 0,2;

二、代码实现

*上篇写过这两个类 , DBconnection类:用于获取数据库连接,Author对象类。这两个类的代码点击连接查看。点击链接查看 DBconnection类和Author对象类

(1)登录页面:index.jsp。

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
    <a href="AuthorListPageServlet">用户列表分页查询</a>
</body>
</html>

(2)显示页面:userlistpage.jsp。

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>查询页面</title>
</head>
<body>
<table border="1">
  <tr>
    <td>编号</td>
    <td>名称</td>
    <td>价格</td>
    <td>数量</td>
    <td>日期</td>
    <td>风格</td>
  </tr>
  <c:forEach items="${pageBean.list}" var="author">
  <tr>
    <td>${author.id}</td>
    <td>${author.name }</td>
    <td>${author.price }</td>
    <td>${author.num }</td>
    <td>${author.dates}</td>
    <td>${author.style}</td>
  </tr>
  </c:forEach>
</table>
<c:if test="${ pageBean.record>0}">
<div>
      
      <c:if test="${pageBean.currentPage <= 1}">
      <span>首页</span>
      <span>上一页</span>
      <a href ="AuthorListPageServlet?currPage=${pageBean.currentPage   1 }">下一页</a>
      <a href ="AuthorListPageServlet?currPage=${pageBean.totalPage }">尾页</a>
      </c:if>
      
      <c:if test="${pageBean.currentPage > 1 && pageBean.currentPage < pageBean.totalPage  }">
       <a href ="AuthorListPageServlet?currPage=1">首页</a>
      <a href ="AuthorListPageServlet?currPage=${pageBean.currentPage - 1 }">上一页</a>
      <a href ="AuthorListPageServlet?currPage=${pageBean.currentPage   1 }">下一页</a>
      <a href ="AuthorListPageServlet?currPage=${pageBean.totalPage }">尾页</a>
      </c:if>
     
     <c:if test="${ pageBean.currentPage >= pageBean.totalPage}">
      <a href ="AuthorListPageServlet?currPage=1">首页</a>
      <a href ="AuthorListPageServlet?currPage=${pageBean.currentPage - 1 }">上一页</a>
     <span>下一页</span>
     <span>尾页</span>
     </c:if>
</div>
</c:if>
</body>
</html>

(3)功能实现:AuthorDao.java。

package com.dao;

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.entity.Author;

public class AuthorDao {
    
     public  Author check(String username ,int  password ) {
         
         Author obj = null ;
         try {
            DBConnection db = new DBConnection();
            //获取数据库连接
            Connection conn = db.getConn();
            
            String sql="select *from furnitures where name = ? and id = ?";
            
            PreparedStatement ps=conn.prepareStatement(sql);
            //设置用户名和密码作为参数放入sql语句
            ps.setString(1,username);
            ps.setInt(2,password);
            //执行查询语句
            ResultSet rs = ps.executeQuery();
            //用户名和密码正确,查到数据  欧式风格  茶几
            if(rs.next()) {
                obj = new Author();
                obj.setId(rs.getInt(1));
                obj.setName(rs.getString(2));
                obj.setPrice(rs.getInt(3));
                obj.setNum(rs.getInt(4));
                obj.setDates(rs.getString(5));
                obj.setStyle(rs.getString(6));
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         return obj;
     }
     /**
      * 用户列表信息查询
      * @return
      */
     public List<Author> queryAuthorList(){
         Author obj = null ;
         List<Author> list = new ArrayList<Author>();
         try {
            DBConnection db = new DBConnection();
            //获取数据库连接
            Connection conn = db.getConn();
            
            String sql="select *from furnitures";
            
            PreparedStatement ps=conn.prepareStatement(sql);
    
            //执行查询语句
            ResultSet rs = ps.executeQuery();
            //用户名和密码正确,查到数据  欧式风格  茶几
            //循环遍历获取用户信息
            while(rs.next()) {
                
                obj = new Author();
                obj.setId(rs.getInt(1));
                obj.setName(rs.getString(2));
                obj.setPrice(rs.getInt(3));
                obj.setNum(rs.getInt(4));
                obj.setDates(rs.getString(5));
                obj.setStyle(rs.getString(6));
                //将对象加入list里边
                list.add(obj);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         return list;
     }
     
     
     /**
      * 查询用户表总记录数
      * @return
      */
     public int queryUserListCount() {
         DBConnection db;
        try {
             db = new DBConnection();
             Connection conn = db.getConn();
             String sql = "select count(*) from furnitures";
             
             PreparedStatement ps = conn.prepareStatement(sql);
             ResultSet rs = ps.executeQuery();
             
             
             if(rs.next()) {
                 return rs.getInt(1);
             }
             
             
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
         return 0;
     }
     /**
      * 查询用户分页数据
      * @param pageIndex数据起始索引
      * @param pageSize每页显示条数
      * @return
      */
     public List<Author>queryUserListPage(int pageIndex,int pageSize){
         
         Author obj = null;
         List<Author> list = new ArrayList<Author>();
         
         try {
            Connection conn = new DBConnection().getConn();
            String sql = "select * from furnitures limit ?,?;";
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setObject(1, pageIndex);
            ps.setObject(2,pageSize);
            
            ResultSet rs = ps.executeQuery();
            //遍历结果集获取用户列表数据
            
            while(rs.next()) {
                obj = new Author();
                
                obj.setId(rs.getInt(1));
                obj.setName(rs.getString(2));
                obj.setPrice(rs.getInt(3));
                obj.setNum(rs.getInt(4));
                obj.setDates(rs.getString(5));
                obj.setStyle(rs.getString(6));
                
                list.add(obj);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         return list;
     }
     /**
      * 用户新增
      * @param obj
      */
     public void add(Author obj) {
        
        try {
            
            DBConnection db = new DBConnection();
            //获取数据库连接
            Connection conn = db.getConn();
            
            String sql="insert into furnitures values(id,?,?,?,?,?)";
            
            PreparedStatement ps=conn.prepareStatement(sql);
            ps.setObject(1, obj.getName());
            ps.setObject(2, obj.getPrice());
            ps.setObject(3, obj.getNum());
            ps.setObject(4,obj.getDates());
            ps.setObject(5, obj.getStyle());
            
            //执行sql语句
           ps.execute();
           
            
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
            
     }
     //删除用户
     public void del(int id) {
         try {
                
                DBConnection db = new DBConnection();
                //获取数据库连接
                Connection conn = db.getConn();
                
                String sql="delete from furnitures where id = ?";
                
                PreparedStatement ps=conn.prepareStatement(sql);
                
                ps.setObject(1, id);
                
                //执行sql语句
               ps.execute();
               
                
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
                
     }
    
}

(4)交互层:AuthorListPageServlet.java。

package com.servlet;

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

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

import com.dao.AuthorDao;
import com.entity.Author;
import com.util.PageBean;

/**
 * Servlet implementation class AuthorListPageServlet
 */
@WebServlet("/AuthorListPageServlet")
public class AuthorListPageServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AuthorListPageServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        int pageSize = 2;
        AuthorDao ad = new AuthorDao();
        //总记录数
        int record = ad.queryUserListCount();
        //接收页面传入的页码
        String strPage = request.getParameter("currPage");
        int currPage = 1;//默认第一页
        if(strPage != null) {
            currPage = Integer.parseInt(strPage);
    
        }
        
        PageBean<Author> pb = new PageBean<Author>(currPage,pageSize,record);
        //查询某一页的结果集
        List<Author> list = ad.queryUserListPage(pb.getPageIndex(), pageSize);
        pb.setList(list);
        request.setAttribute("pageBean", pb);
        request.getRequestDispatcher("userlistpage.jsp").forward(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

(5)工具类:PageBean.java。作用是:获取结果集。

package com.util;

import java.util.List;

public class PageBean<T>{
    private int currentPage;//当前页码
    private int pageIndex;//数据起始索引
    private int pageSize;//每页条数
    
    
    private int record;//总记录数
    private int totalPage;//总页数
    
    private List<T>list;//每页显示的结果集
    /**
     * 构造方法初始化pageIndex和totalPage
     * @param currentPage
     * @param pageIndex
     * @param pageSize
     */
    public PageBean(int currentPage,int pageSize,int record) {
        
        this.currentPage = currentPage;
        this.pageSize = pageSize;
        this.record = record;
        
        //总页数
        if(record % pageSize == 0) {
            //整除,没有多余的页
            this.totalPage = record / pageSize;
            
        }
        else {
            //有多余的数据,在增加一页
            this.totalPage = record / pageSize   1;
        }
        
        //计算数据起始索引pageIndex
        if(currentPage < 1) {
            this.currentPage = 1;
        }
        else if(currentPage > this.totalPage) {
            this.currentPage = this.totalPage;
        }
        this.pageIndex = (this.currentPage -1)*this.pageSize;
    }
    
    public int getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    public int getPageIndex() {
        return pageIndex;
    }

    public void setPageIndex(int pageIndex) {
        this.pageIndex = pageIndex;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public int getRecord() {
        return record;
    }

    public void setRecord(int record) {
        this.record = record;
    }

    public int getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public List<T> getList() {
        return list;
    }

    public void setList(List<T> list) {
        this.list = list;
    }
    
}

三、运行结果

(1)首页:

(2)中间页:

(3)尾页:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持Devmax。

jsp+mysql实现网页的分页查询的更多相关文章

  1. 从iOS应用程序发送帖子到PHP脚本不工作…简单的解决方案就像

    我之前已经做了好几次了但是由于某些原因我无法通过这个帖子…我尝试了设置为_POST且没有的变量的PHP脚本……当它们未设置为发布时它工作精细.这是我的iOS代码:这里是PHP的一大块,POST变量不在正确的位置?我想这对于更有经验的开发人员来说是一个相当简单的答案,感谢您的帮助!解决方法$_POST是一个数组,而不是一个函数.您需要使用方括号来访问数组索引:

  2. Android – 将SQLite与MySQL同步的最佳方式

    参见英文答案>Synchronizingclient-serverdatabases5个我正在开发一个包含网络应用和移动应用程序的项目,该应用程序记录每日用户的数据.用户可以删除,更新他们的数据,他们可以使用许多设备插入数据.我打算这样开发:用户输入他们的数据然后插入sqlite.服务将定期启动(每5小时或每小时)以使用时间戳与MysqL同步.我确实在互联网上使用服务和时间戳搜索了一个样本,但我一

  3. android – 如何将唯一的GCM注册标识存储到MySQL中

    我正在设置GoogleCloudMessaging机制的服务器端,使用MySQL存储移动应用提供的注册ID.Google可以发出最多4k个注册码,我被迫将其存储在TEXT字段中.所有的好,到目前为止,问题是我必须处理这样的情况:>用户登录到应用程序>该应用从google请求注册ID>应用程序将新的注册ID发送到应用服务器>服务器存储该注册ID并将其链接到当前登录的用户>该用户注销并且新用户登录>应

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. jsp ${param.id}用法

    ${id} 意思是取出某一范围中名称为id的变量。

  6. ajax从JSP传递对象数组到后台的方法

    今天小编就为大家分享一篇ajax从JSP传递对象数组到后台的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  7. nodeJs链接Mysql做增删改查的简单操作

    本篇文章主要介绍了nodeJs链接Mysql做增删改查的简单操作,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  8. PHP连接MYSQL数据库的3种常用方法

    这篇文章主要介绍了PHP连接MYSQL数据库的3种常用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  9. jsp网页登陆验证

    这篇文章主要介绍了 jsp登陆验证,网页登陆验证带验证码校验,登录功能之添加验证码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例

    这篇文章主要介绍了PHP使用PDO创建MySQL数据库、表及插入多条数据操作,结合实例形式总结分析了php基于pdo的mysql数据库创建、数据表创建以及多条数据插入操作相关实现技巧,需要的朋友可以参考下

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部