`

MySql 分页

    博客分类:
  • DB
阅读更多
package com.yous365.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"));   
           
           
           
    }   
       
       
}  
package com.yous365.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"));
		
		
		
	}
	
	
}





 
package com.yous365.util;  
  
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;   
    }   
  
       
} 
分享到:
评论

相关推荐

    JSP+MySql分页组件

    【JSP+MySQL分页组件】是Web开发中常见的功能,用于处理大量数据时提高页面加载速度和用户体验。在Web应用程序中,一次性加载所有数据可能导致页面响应慢,尤其是在数据库存储的数据量庞大的情况下。分页技术可以...

    asp mysql分页(超完美版本)

    ### ASP与MySQL分页技术详解 #### 一、引言 在Web开发中,当数据量庞大时,一次性展示所有数据不仅会导致页面加载缓慢,还会严重影响用户体验。因此,实现数据的分页显示变得尤为重要。本文将详细介绍如何在ASP...

    easyUI+MySQL分页

    本项目“easyUI+MySQL分页”旨在教你如何利用easyUI框架与MySQL数据库相结合,实现在Web页面上展示分页数据的效果。在这个过程中,我们将涉及到前端的JavaScript库easyUI,以及后端的MySQL数据库和可能用到的Java...

    PHP MYSQL分页代码

    本资源"PHP MYSQL分页代码"提供了一个实用的解决方案,结合了PHP和MySQL两种技术来实现高效的数据分页功能。 首先,让我们深入了解PHP和MySQL在分页中的角色。PHP是一种广泛使用的服务器端脚本语言,常用于动态网站...

    基于hibernate_mysql分页通用源码

    【标题】"基于hibernate_mysql分页通用源码"涉及的关键知识点主要集中在Java Web开发领域,特别是关于ORM框架Hibernate、关系型数据库MySQL、MVC框架Struts2以及分页技术的应用。以下是对这些核心概念的详细解释: ...

    java-web-mysql 分页demo

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

    封装好的php+mysql分页类

    这个"封装好的php+mysql分页类"提供了一种高效且可复用的方法来实现这一目标。以下是对该分页类的详细解析: 1. **类结构**: 分页类通常包含一些关键属性,如每页显示的记录数($limit)、当前页数($currentPage...

    PHP+MySql分页显示示例分析.

    以下是一个简单的PHP+MySQL分页显示的示例代码: ```php // 数据库连接 $conn = mysql_connect("localhost", "root", ""); // 设置每页显示记录数 $pagesize = 10; // 获取总记录数 $rs = mysql_query("SELECT ...

    MYSQL分页存储过程

    ### MySQL分页存储过程概述 分页存储过程是一种在数据库层面上实现数据分页的技术。相比应用程序级别的分页,它能更高效地处理数据,减少网络传输的数据量,提升系统性能。在MySQL中,我们可以通过创建存储过程来...

    mysql分页存储过程

    通过上述分析可以看出,这个MySQL分页存储过程实现了灵活且高效的分页查询功能。它不仅能够根据用户提供的参数动态地构建查询语句,还能够处理排序、分组等复杂需求。对于需要频繁进行分页查询的应用场景来说,这种...

    struts2+MySQL分页(精).

    ### Struts2与MySQL分页实现详解 #### 一、背景与目的 随着Web应用的不断发展,用户对于信息展示的需求也越来越高。为了更好地管理和展示大量数据,分页技术成为了一个不可或缺的功能。本文将详细介绍如何利用...

    高效的MySQL分页

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

    Mysql分页通用存储过程

    Mysql分页通用存储过程

    PHP+mysql分页原理和实例应用.pdf

    接下来,我们将详细介绍PHP+MySQL分页的原理及实例应用。 首先,我们需要了解MySQL数据库中实现分页的核心SQL语句——LIMIT子句。在SQL语句中,LIMIT用于限制查询结果的数量,它接受一个或两个数字参数,表示从哪一...

    mysql分页实例

    在这个"mysql分页实例"中,我们将深入探讨MySQL的分页查询技术,并提供可以直接引用的分页类。 首先,我们要理解SQL中的基础分页查询语句。在MySQL中,最常用的分页查询方法是结合`LIMIT`和`OFFSET`关键字。`LIMIT`...

    mysql 分页源代码

    "mysql 分页源代码"这个主题就涉及到如何通过编程技术实现数据库查询的分页功能,以提高性能并提供良好的用户界面。这里我们将详细探讨使用JSP、JavaBean、JDBC以及MySQL进行分页的具体步骤和原理。 首先,JSP...

    MySQL分页实现

    4. **MySQL分页工具** 在实际开发中,许多开发者会选择使用ORM(对象关系映射)框架,如Hibernate、MyBatis等,它们通常提供封装好的分页API,简化了数据库分页的操作。同时,也有一些数据库管理工具,如MySQL ...

    mysql分页的limit参数简单示例

    到此这篇关于mysql分页的limit参数的文章就介绍到这了,更多相关mysql分页limit参数内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网! 您可能感兴趣的文章:详解MySQL的limit...

    winform mysql 分页

    本示例中,我们将探讨如何在WinForm应用程序中实现MySQL数据库的分页功能,这在处理大量数据时非常实用,可以提高用户体验并减少系统资源的消耗。 首先,我们需要在Visual Studio 2010中创建一个新的WinForm项目。...

    PHP+MYSQL分页代码

    本主题“PHP+MYSQL分页代码”着重讲解如何在PHP后端和MySQL数据库配合下实现高效、实用的分页功能。下面我们将深入探讨相关知识点。 1. **SQL查询与LIMIT子句**: 在MySQL中,`LIMIT`子句用于在查询结果集中限制...

Global site tag (gtag.js) - Google Analytics