`

实现分页

    博客分类:
  • JDBC
阅读更多
引用

package day03;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import tarena.util.DBUtil;

public class JDBCTest2 {
	public static void main(String[] args) throws Exception {
		test2(7000,10);
	}
	static void test2(int page, int pageSize) throws Exception {
		Connection con = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		try {
			con = DBUtil.openInThread();
			page = page < 1?1:page;
			int start = (page-1) * pageSize + 1;
			int end = start + pageSize;
			// [start, end)
			pstmt = con.prepareStatement(
					"select * from  " +
					"(select t.*, rownum r from " +
					"(select * from s_emp) t) " +
					"where r >=? and r<?");
			pstmt.setInt(1, start);
			pstmt.setInt(2, end);
			rs = pstmt.executeQuery();
			while(rs.next()) {
				System.out.println(rs.getString("first_name"));
			}
		} finally {
			DBUtil.close(null, pstmt, rs);
			DBUtil.closeInThread();
		}
	}
	static void test1(int page, int pageSize) throws Exception {
		Connection con = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			con = DBUtil.openInThread();
			stmt = con.createStatement(
					ResultSet.TYPE_SCROLL_INSENSITIVE, 
					ResultSet.CONCUR_READ_ONLY);
			rs = stmt.executeQuery(
					"select * from s_emp");
			page = page < 1?1:page;
			int start = (page-1) * pageSize + 1;
			// 定位,返回值表示指针位置是否有数据
			boolean hasRow = rs.absolute(start); 
			// 如果指针指向没有数据的位置,不能取数据
			if(!hasRow || rs.isBeforeFirst() || rs.isAfterLast()) {
				System.out.println("指针位置无数据");
				return;
			}

			// 从此位置向后取出pageSize条数据
			for(int i=0;i<pageSize;i++) {
				System.out.println(rs.getString("first_name"));
				if(! rs.next()) { // 如果剩余数据不足,结束
					break;
				}
			}

		} finally {
			DBUtil.close(null, stmt, rs);
			DBUtil.closeInThread();
		}
	}
}



service类
package day03;

import java.util.ArrayList;
import java.util.List;
import day02.Emp;

public class EmpService {
	public void save(Emp emp) throws Exception {
	}
	public void delete(Emp emp) throws Exception {
	}
	public void update(Emp emp) throws Exception {
		// update s_emp set .... where id=?
	}	
	public Emp findById(int id) throws Exception {
		return null;
	}

	public List<Emp> findAll() throws Exception {
		List<Emp> list = new ArrayList<Emp>();
		/*rs = 执行查询;
		while(rs.next()) {
			从rs中一个数据一个数据的取出
			新建Emp对象
			将数据放入Emp对象
			Emp对象放入list
		}*/
		return list;
	}
	
	public List<Emp> findAll(int page, int pageSize) throws Exception {
        return null;	
	}

	

	public int findMaxPage(int pageSize) throws Exception {
		 return  0;	
	}
}


分享到:
评论

相关推荐

    利用js制作html table分页示例(js实现分页)

    实现分页的步骤一般包括设置每页显示的数据条数、获取数据总条数、计算总页数、控制当前页数变量以及能够实现翻页的功能,如首页、上一页、下一页、尾页和跳转到指定页码的实现。 根据提供的部分内容,这里涉及的...

    mysql数据库实现分页

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

    nodejs mysql 实现分页的方法

    Node.js结合MySQL实现分页查询是一种常见的数据处理方式,在Web应用中尤为常见。分页可以有效提高页面的响应速度,并优化用户的浏览体验。本文主要介绍了在Node.js环境下,如何使用MySQL数据库实现分页功能。 首先...

    用recyclerview实现分页滑动,横向纵向分页

    在实现分页时,我们主要关注LayoutManager。 1. **纵向分页**: 在Android中,通常使用LinearLayoutManager实现纵向滚动。为了实现分页,我们可以监听RecyclerView的滑动事件,并在用户接近底部时加载下一页。这...

    统一实现分页接口

    ### 统一实现分页接口:跨数据库平台的分页技术 在软件开发中,特别是在构建数据密集型应用时,分页技术是处理大量数据的关键方法之一。它不仅能够优化用户体验,减少网络传输的数据量,还能提高服务器响应速度。...

    python flask实现分页的示例代码

    结合mysql数据库查询,实现分页效果 @user.route("/user_list",methods=['POST','GET']) def user_list(): p = g.args.get("p", '') #页数 show_shouye_status = 0 #显示首页状态 if p =='': p=1 else: p=int...

    Android,自定义RecyclerView,实现分页效果

    本文将深入探讨如何自定义RecyclerView以实现分页加载效果,从而提高用户体验并减少内存消耗。 首先,我们需要了解分页加载的基本概念。在Android应用中,分页加载是指当用户滚动到列表底部时,动态加载更多数据,...

    mui.js实现分页功能

    在这个主题中,我们将深入探讨如何利用`mui.js`来实现分页功能,以及它与`jQuery`的关系。 首先,分页功能在网页应用中极为常见,特别是在数据量大、需要分批加载的场景下。`mui.js`提供了一个内置的分页组件,可以...

    使用Spring的JdbcTemplate实现分页功能

    使用Spring的JdbcTemplate实现分页功能

    mysql存储过程实现分页

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

    jsp实现分页功能

    在网页开发中,分页功能是一项非常常见的需求,特别是在数据量较大的情况下,为了提高用户体验,我们需要将大量数据分批次展示,这就是jsp实现分页功能的主要目的。本篇将详细介绍如何利用jsp来完成这一任务。 首先...

    框架整合SSH实现分页

    【SSH框架整合实现分页详解】 SSH框架整合是企业级应用开发中常用的技术组合,它由Struts2、Spring和Hibernate三个开源框架组成,分别负责表现层、业务逻辑层和服务数据访问层。在这个过程中,实现分页功能是提高...

    基于tp5的vue+element-ui 实现分页

    在实现分页时,我们需要在控制器中处理数据库查询,获取到分页所需的数据。同时,利用TP5的视图系统,我们可以将这些数据传递给前端展示。 2. **Vue.js与数据绑定** Vue.js的核心是响应式的数据绑定,通过`v-model...

    如何用JSTL实现分页

    如何用JSTL实现分页 如何用JSTL实现分页 如何用JSTL实现分页 如何用JSTL实现分页 如何用JSTL实现分页

    mysql+spring mvc 实现分页

    本篇将详细探讨如何利用MySQL和Spring MVC来实现分页功能,以及在这个过程中涉及到的相关知识点。 一、MySQL数据库分页 在MySQL中,分页主要通过`LIMIT`和`OFFSET`关键字实现。`LIMIT`用于指定返回结果的数量,而`...

    mybatis使用拦截器实现分页操作

    在本案例中,我们将探讨如何利用MyBatis的拦截器功能实现分页操作,以此来提高代码的复用性和可维护性。下面将详细阐述这一过程。 首先,我们需要了解MyBatis拦截器的基本概念。MyBatis拦截器类似于Java的AOP(面向...

    实现分页功能page.php

    实现分页功能,实现首页,下一页,上一页,末页的功能

    使用extremecomponent组件实现分页、导出xls

    本教程将详细讲解如何利用Extremecomponents来实现分页、导出Excel(XLS)以及表格排序等功能。 首先,我们要了解分页在Web应用中的重要性。在处理大量数据时,分页可以提高用户体验,避免一次性加载所有数据导致...

    三种方式实现分页

    本篇将重点介绍在Java环境中,如何通过三种不同的方式来实现分页功能。 首先,我们来看看什么是分页。分页是将大量数据分成若干小部分,每次只显示一部分,用户可以通过翻页来查看更多的数据。在Web开发中,分页...

    利用eXtremeComponents标签来实现分页实例

    首先,我们需要了解XC库中的`xe:pager`标签,它是实现分页功能的核心组件。`xe:pager`提供了各种分页样式和配置选项,可以轻松地与数据源绑定,实现数据的分页显示。以下是如何在JSF页面中使用`xe:pager`的基本语法...

Global site tag (gtag.js) - Google Analytics