`
xi5566
  • 浏览: 151731 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JAVA MYSQL做分页

阅读更多
看main
package com.hcwy.test.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import com.hcwy.basic.jdbc.DBConnection;
import com.hcwy.basic.page.PageBean;

public class ArticlesDAO {

	private static final Map HashMap = null;

	private PreparedStatement pstmt;
	
	private ResultSet rs;

	private Connection con;
	
//	private DBConnection conn;
	
	
	public Connection conn(){
		try {
			Class.forName("com.mysql.jdbc.Driver");
			try {
				con=DriverManager.getConnection("jdbc:mysql://localhost:3316/hcwy","root","root");
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return con;
	}
	
	
	//查询SQL
	public ArrayList chaSQL(String sql){
		ArrayList list=new ArrayList();
		try {
			
			pstmt=this.conn().prepareStatement(sql);
			rs=pstmt.executeQuery();
			ResultSetMetaData rsmd=rs.getMetaData();
			int count=rsmd.getColumnCount();
			while(rs.next()){
//				System.out.println("名字是-->"+rsmd.getColumnName(i)+"\t 得到的object是-->"+rs.getObject(i)+"   "+i);
				HashMap map=new HashMap();
				for(int i=0;i<count;i++){
					map.put(rsmd.getColumnName(i+1), rs.getObject(i+1));
				}
				list.add(map);
				
			}
			
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return list;

}
	
	//查询所总条数
	public int count(String name){
		String sql="select count(*) as aa from "+name;
		int i=0;
		try {
			pstmt=this.conn().prepareStatement(sql);
			rs=pstmt.executeQuery();
			if(rs.next()){
				i=rs.getInt("aa");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return i;
	}
	
	
	
	//查询SQL带分页
	public ArrayList chaSQL(String sql,String name,PageBean page){
		ArrayList list=new ArrayList();
		if(page!=null){
			page.setTotalCount(this.count(name));
			sql=sql+" limit "+page.getStart()+","+page.getPageSize();
			
		}
		System.out.println(sql);
		try {
			
			pstmt=this.conn().prepareStatement(sql);
			rs=pstmt.executeQuery();
			ResultSetMetaData rsmd=rs.getMetaData();
			
			int count=rsmd.getColumnCount();//得到表里字段的总数
			while(rs.next()){
//				System.out.println("名字是-->"+rsmd.getColumnName(i)+"\t 得到的object是-->"+rs.getObject(i)+"   "+i);
				HashMap map=new HashMap();
				for(int i=0;i<count;i++){
					map.put(rsmd.getColumnName(i+1), rs.getObject(i+1));//名字和值
				}
				list.add(map);
				
			}
			
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return list;

}
	
	
	
	
	
	public static void main(String[] args) {
	
		 PageBean page=new PageBean();
		ArticlesDAO dd=new ArticlesDAO();
		ArrayList list=dd.chaSQL("select * from articles","articles",page);//如果这里不写page和articles的意思 就是说不要分页
		//任何对象都能解析
		for(int i=0;i<list.size();i++){
			HashMap map=(HashMap)list.get(i);
			
			Iterator it=map.keySet().iterator();
			while(it.hasNext()){
				Object id=it.next();
				System.out.println(""+map.get(id));
				
			}
				
				System.out.println("\n");
			
		}
		
		
//		ArticlesDAO dd=new ArticlesDAO();
//		System.out.println(dd.count("articles"));
		
		
		
	}
	
	
}



在看PAGEBEAN

package com.hcwy.basic.page;

public class PageBean {

	private static final int DEFAULT_PAGE_SIZE = 20;

	private int pageSize = DEFAULT_PAGE_SIZE;  // 每页的记录数

	private int start=0;  // 当前页第一条数据在List中的位置,从0开始

	private int page=1;  //当前页

	private int totalPage=0;  //总计有多少页

	private int totalCount=0;  // 总记录数
////////////////
//	构造函数
	public PageBean() {
	}

	public PageBean(int page) {
		this.page=page;
	}

/////////////////

	public void setPage(int page) {
		if(page>0) {
			start=(page-1)*pageSize;
			this.page = page;
		}
	}
	
	public int getPage() {
		return page;
	}

	public int getPageSize() {
		return pageSize;
	}

	public PageBean setPageSize(int pageSize) {
		this.pageSize = pageSize;
		return this;
	}
	/**
	 * @return the start
	 */
	public int getStart() {
		return start;
	}

	//	此位置根据计算得到
	protected void setStart() {
	}
	
/**
	 * @return the totalCount
	 */
	public int getTotalCount() {
		return totalCount;
	}
	
	public void setTotalCount(int totalCount) {
		this.totalCount=totalCount;
		totalPage = (int) Math.ceil((totalCount + pageSize - 1) / pageSize);
		start=(page-1)*pageSize;
	}
	
	//	总页面数根据总数计算得到
	protected void setTotalPage() {
		
	}
	
	public int getTotalPage() {
		return totalPage;
	}
	
	
///////////////
	//获取上一页页数
	public int getLastPage() {
		if(hasLastPage()) {
			return page-1;
		}
		return page;
	}
	public int getNextPage() {
		if(hasNextPage()) {
			return page+1;
		}
		return page;
	}
	/**
	 * 该页是否有下一页.
	 */
	public boolean hasNextPage() {
		return page < totalPage;
	}

	/**
	 * 该页是否有上一页.
	 */
	public boolean hasLastPage() {
		return page > 1;
	}

	
}




分享到:
评论
1 楼 wenjinglian 2010-04-02  
那去用用

相关推荐

    java和mysql的分页程序

    在Java和MySQL的世界里,分页是Web应用程序中不可或缺的一部分,尤其在处理大量数据时,分页能够提高用户体验,避免一次性加载过多数据导致页面响应慢或者内存溢出。本项目提供了一个基于Java后端和MySQL数据库的...

    java-web-mysql 分页demo

    二、MySQL分页查询 在MySQL中,我们可以使用`LIMIT`和`OFFSET`关键字来实现分页。`LIMIT`用于指定每页显示的数据条数,`OFFSET`用于指定从哪一条记录开始取数据。例如,要获取第2页(每页5条数据)的信息,SQL语句...

    mysql数据库实现分页

    在MySQL数据库中,分页是处理大量数据查询时不可或缺的一种技术。它允许用户按需加载数据,而不是一次性获取所有记录,从而提高了用户体验并降低了服务器负载。以下是对分页实现的详细说明: 一、基础概念 分页是将...

    MySQL JAVA 分页

    本文将深入探讨MySQL与Java结合实现分页查询的技术细节。 首先,我们需要理解什么是分页。分页是将大量数据分为多个部分(页)进行显示,而不是一次性加载所有数据,这样可以减少内存占用,提高页面响应速度,并使...

    java语言的分页查询功能(mysql和sql server)

    本教程将详细讲解如何在Java中实现不分框架的分页查询,同时涵盖对MySQL和SQL Server数据库的支持。 一、基础知识 1. 分页概念:分页是将大量数据按一定数量分成若干部分,每次只加载一部分到内存中显示,用户可以...

    java、mysql分页技术

    本篇将深入探讨Java与MySQL结合实现的分页技术,以及在MVC(Model-View-Controller)架构中的应用。 首先,MySQL作为流行的开源关系型数据库管理系统,提供了强大的查询功能。然而,在处理大数据量时,一次性加载...

    javaweb mysql实现分页功能

    在JavaWeb开发中,分页功能是不可或缺的一部分,特别...总之,实现JavaWeb中的MySQL分页功能,需要结合后端的SQL查询和前端的页面链接处理。通过合理的数据库设计和优化,可以有效地提高用户体验,同时减轻服务器压力。

    java jsp mysql分页(原代码)

    Java JSP MySQL分页是Web开发中常见的需求,主要用于处理大量数据时提高用户体验,避免一次性加载过多数据导致页面响应慢。在这个项目中,我们看到它使用了Java、JSP、JDBC以及MySQL来实现这一功能。下面将详细介绍...

    java web mysql 通用分页

    本教程将深入探讨如何在Java Web应用中结合MySQL实现通用的分页功能。 首先,我们需要理解分页的基本概念。分页是将大数据集划分为若干小部分,每次只加载一部分(一页)数据到用户界面,用户可以逐页浏览,而不...

    高效的MySQL分页

    总结来说,实现高效的MySQL分页查询需要考虑索引优化、使用新的SQL特性,以及借助合适的开发工具。同时,持续关注数据库性能监控,及时调整和优化查询策略,对于保持系统稳定和提升用户体验具有重要意义。

    JSP+MYSQL+Java类优化分页的实例

    ### JSP+MYSQL+Java类优化分页的实例解析 #### 概述 在Web开发中,分页是一项常见的功能,用于处理大量数据时的显示问题。本文将深入解析一个结合了JSP、MYSQL和Java类优化分页的实例,探讨其设计思路、实现原理...

    java 数据分页显示

    1. **查询策略**:在数据库层面,我们可以使用SQL语句配合`LIMIT`和`OFFSET`(在MySQL中)或`FETCH NEXT`和`OFFSET`(在SQL Server中)来实现分页查询。例如,PageSQL.java可能包含以下代码: ```java public List...

    java连mysql接数据库,jsp实现分页

    本话题将深入探讨如何使用Java连接MySQL数据库,并通过JSP(JavaServer Pages)实现分页功能。 首先,我们需要在Java环境中配置MySQL的JDBC(Java Database Connectivity)驱动,这是连接到MySQL数据库的关键。JDBC...

    JAVA+JSP+MYSQL分页

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

    Java Swing JTable分页

    ### Java Swing JTable 分页实现详解 #### 一、引言 在开发基于Java Swing的应用程序时,我们经常需要处理大量的数据展示问题。对于表格形式的数据展示,`JTable`是一个非常常用且强大的组件。然而,当数据量过大时...

    Java和Mysql的分页程序

    在这个“Java和Mysql的分页程序”中,我们将探讨如何利用Java进行数据库连接管理,以及如何设计有效的MySQL分页查询。 首先,Java中的数据连接池是一种管理数据库连接的有效机制,它能显著提高应用的性能和效率。...

    mysql+java+分页-人员管理系统

    在本项目"mysql+java+分页-人员管理系统"中,我们主要探讨的是如何使用MySQL数据库与Java编程语言来构建一个包含分页功能的人员管理系统。这个系统涵盖了基本的用户登录验证、退出系统以及对人员信息进行增加、删除...

    mysql分页查询

    本文将深入探讨MySQL分页查询的原理、方法以及在Java开发中的应用。 ### 分页查询的基本概念 分页查询是指从数据库中获取特定范围的数据,通常是以页为单位进行加载。这种方式可以有效地减少网络传输的数据量,...

    Mysql分页案例

    MySQL分页是数据库查询中的一个重要概念,特别是在处理大数据量时,为了提高用户体验并优化服务器性能。本案例将探讨如何利用Java的JDBC(Java Database Connectivity)接口与MySQL数据库交互,实现后台的数据分页,...

    Java+Swing+mysql5实现学生成绩管理系统(带分页)

    在本项目中,"Java+Swing+mysql5实现学生成绩管理系统(带分页)"是一个基于Java编程语言,利用Swing图形用户界面库和MySQL数据库来构建的管理学生成绩的应用程序。这个系统经过了充分的测试,确保了其稳定性和可靠性...

Global site tag (gtag.js) - Google Analytics