Java学习之分页查询

Java学习之分页查询

一先做数据库的实体类

Userinfo.java

<span style="font-size:14px;">package com.zhu.books.jdbc;

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

public class Pagation extends DBConnection {
	public int getTableRsCount(){
		int iCount=0;	//记录行数,然后返回
		try {
			getConnection();
			String sql="select  count(id) as icount from table1";
			pStmt=conn.prepareStatement(sql);
			rs=pStmt.executeQuery();
			if(rs.next()){
				iCount=rs.getInt("icount");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return iCount;
	}
	/**
	 * 查询信息
	 */
	public List<Userinfo> getPageListUserinfo(int pageNum,int pageSize){
		List<Userinfo> list=new ArrayList <Userinfo> ();
		try {
			getConnection();
			int begin=(pageNum-1)*pageSize;
			String sql="select * from table1 limit "+begin+","+pageSize;
			pStmt=conn.prepareStatement(sql);
			rs=pStmt.executeQuery();
			while(rs.next()){
				Userinfo user=new Userinfo();
				user.setId(rs.getInt("id"));
				user.setUname(rs.getString("uname"));
				user.setRealname(rs.getString("realname"));
				list.add(user);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
			return list;
	}

</span><span style="font-size:18px;"><strong>}
</strong></span>

二:建立数据库连接

DBConnection.java

package com.zhu.books.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class DBConnection {
	private static final String CLS = "com.mysql.jdbc.Driver";
	private static final String URL = "jdbc:mysql://localhost:3306/test";
	private static final String USER = "root";
	private static final String PWD = "122198";
	public static Connection conn = null;
	public static Statement stmt = null;
	public static PreparedStatement pStmt = null;
	public static ResultSet rs = null;
	/**
	 * 建立数据库连接
	 */
	public static void getConnection(){
		try{
			Class.forName(CLS);
			conn = DriverManager.getConnection(URL, USER, PWD);
		}catch(Exception ex){
			ex.printStackTrace();
		}
	}
	/**
	 * 关闭连接
	 */
	public static void closeAll(){
		try{
			if(rs!=null){
				rs.close();
				rs=null;
			}
			if(stmt!=null){
				stmt.close();
				stmt=null;
			}
			if(pStmt!=null){
				pStmt.close();
				pStmt=null;
			}
			if(conn!=null){
				conn.close();
				conn=null;
			}
		}catch(Exception ex){
			ex.printStackTrace();
		}
	}

}

三实施分页

Pagation.java

package com.zhu.books.jdbc;

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

public class Pagation extends DBConnection {
	public int getTableRsCount(){
		int iCount=0;	//记录行数,然后返回
		try {
			getConnection();
			String sql="select  count(id) as icount from table1";
			pStmt=conn.prepareStatement(sql);
			rs=pStmt.executeQuery();
			if(rs.next()){
				iCount=rs.getInt("icount");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return iCount;
	}
	/**
	 * 查询信息
	 */
	public List<Userinfo> getPageListUserinfo(int pageNum,int pageSize){
		List<Userinfo> list=new ArrayList <Userinfo> ();
		try {
			getConnection();
			int begin=(pageNum-1)*pageSize;
			String sql="select * from table1 limit "+begin+","+pageSize;
			pStmt=conn.prepareStatement(sql);
			rs=pStmt.executeQuery();
			while(rs.next()){
				Userinfo user=new Userinfo();
				user.setId(rs.getInt("id"));
				user.setUname(rs.getString("uname"));
				user.setRealname(rs.getString("realname"));
				list.add(user);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
			return list;
	}

}

四建立jsp查询页面

paging.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="com.zhu.books.jdbc.Userinfo"%>
<%@page import="com.zhu.books.jdbc.Pagation"%>
<%
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>
    <base href="<%=basePath%>">

    <title>分页显示数据</title>

	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>

  <body>
      	<table border="1" align="center">
      	<tr>
      	 <td>id</td>
      	  <td>用户名</td>
      	   <td>真实姓名	</td>
      	</tr>
      	<%
      	String strPagenum=request.getParameter("pageNum");
      	int pageNum=1;//当前列数
      	int pageSize=3;
      	int pageSum=0;
      	if(strPagenum!=null){
      	  pageNum=Integer.parseInt(strPagenum);

      	}
      	Pagation  pagation=new Pagation();
      	List<Userinfo> list=pagation.getPageListUserinfo(pageNum,pageSize);
      	 int  iCount=pagation.getTableRsCount();//记录总数

      	 //计算总面积
      	 pageSum=iCount/pageSize;
      	 if(iCount%pageSize!=0){
      	   pageSum+=1;
      	 }
      	 if(list.size()>0){
      	 for(Userinfo  user: list){
      	    %>
      	    <tr>
      	    <td> <%=user.getId()%></td>
      	     <td> <%=user.getUname()%></td>
      	      <td> <%=user.getRealname()%></td>
      	    </tr>
      <%
       }
      	 }
       %>
       <tr>
       <td colspan="3" align="center">
        <%
          out.print("第["+pageNum+"]页, 共["+pageSum+"]页");
          if(pageNum<2){

         %>
               上一页
         <%
       }else{
          %>
          <a href="../Books/books/paging.jsp?pageNum=<%=pageNum-1%>" > 上一页</a>
          <%
          }
           %>
             
           <%
           if(pageNum>=pageSum)
           {
           %>
           上一页
           <%
           }else
           {

            %>
             <a href="../Books/books/paging.jsp?pageNum=<%=pageNum+1 %>" >下 一页</a>
            <%

            } %>
       </td>

       </tr>	

      	</table>
  </body>
<span style="color:#ff0000;"></html>
</span>

页面展示

时间: 2024-11-08 21:51:26

Java学习之分页查询的相关文章

Java数据库学习之分页查询

分页查询  limit [start],[rows] 思路: pram start 从哪一行开始 关键是从哪一行开始,需要根据查询的页数来进行换算出查询具体页数是从哪一行开始 start = (pages-1)*rows; pages : 具体要查询那一页 rows :   每页查询多少行 pram rows 查询多少行 总页数需用额外的方法使用SQL语句中的count关键字来计算,并对用户输入的页数进行逻辑判断. 当用户输入页数<=0;从第一页开始 当用户输入页数>=最大页数是 从最大的页数

【java】在分页查询结果中对最后的结果集List进行操作add()或remove()操作,报错:java.lang.UnsupportedOperationException

场景: 在分页查询结果中对最后的结果集List进行操作add()或remove()操作,报错:java.lang.UnsupportedOperationException 错误: java.lang.UnsupportedOperationException at java.util.Collections$UnmodifiableCollection.add(Collections.java:1055) at com.pisen.cloud.luna.ms.goods.api.impl.Te

java开发之分页查询

工具类 package com.luer.comm.utils; import java.util.List; public class PageBean<T> { //已知数据 private int pageNum; //当前页,从请求那边传过来. private int pageSize; //每页显示的数据条数. private int totalRecord; //总的记录条数.查询数据库得到的数据 //需要计算得来 private int totalPage; //总页数,通过to

Java中oracle分页查询01

在数据库汇中的查询语句:oracle中使用rownum进行分页,从每页在总记录数的第n条到第m条:这里的是每页10条记录,下面sql所查询的是第页的记录数:oracle的分页是从1开始的,这里写成rownum>=0,rownum<=9,查询的记录是9条. SELECT * FROM (SELECT ROW_.*, ROWNUM ROWNUM_ FROM (SELECT * FROM TABLE1 WHERE TABLE1_ID = XX ORDER BY GMT_CREATE DESC) RO

java里自定义分页查询的尝试

1 public String list(){ 2 try { 3 LoginUser loginUser = getLoginUser();//获取当前登录用户 4 if(curpage<=0){ 5 curpage=1; 6 } 7 pagesize=15; 8 RunParam runParam = runParamService.getTzrqrq(); 9 10 if(faccountDate == null){ 11 faccountDate = runParam.getfItemD

[原创]java WEB学习笔记90:Hibernate学习之路-- -HQL检索方式,分页查询,命名查询语句,投影查询,报表查询

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

JAVA学习之 实现分页查询

分页是系统中常用到的功能,只要涉及到查询必定伴随而来的就是分页,之前也学习过关于分页的内容,例如在牛腩的新闻发布系统,之前学习的大部分都是使用了假分页,这次学习java,使用Oracle数据库来实现一下真分页. 首先来说一下实现这个分页查询的流程: 一.封装分页信息: 需要分页的部分我们首先要做的是为分页封装一个分页实体,方便返回查询信息,封装如下: /** *封装分页信息 * @author YoungJong * */ public class PageModel<E> { //结果集 p

Java技术积累——用最原始的代码见证分页查询实现原理

关于分页查询,大家并不陌生,easyui中封装的datagrid将表格的一系列操作运用的淋漓尽致,分页查询便是其中之一.然而,我们却疏于了解分页查询的基本实现原理,它究竟是如何实现的,今天就带大家一起来探个究竟! 看一下界面的实现效果: 看似很复杂的事情,其实实现它最核心的东西有两个: 一.实现分页查询的SQL语句 select user_id,user_name,password,contact_Tel,email,create_date from( select rownum rn,user

Java链接HBASE数据库,创建一个表,删除一张表,修改表,输出插入,修改,数据删除,数据获取,显示表信息,过滤查询,分页查询,地理hash

准备工作 1.创建Java的Maven项目 创建好的目录结构如下:  另外注意junit的版本,最好不要太高,最开始笔者使用的junit4.12的,发现运行的时候会报错.最后把Junit的版本改成4.7的之后,问题解决了. 创建测试工具类HbaseDemo,为了保证能够让Hbase运行,需要最开始写出如下配置: package toto.com.hbase; import java.util.ArrayList; import java.util.Iterator; import org.apa