`
a0102051365
  • 浏览: 33667 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

jdbc中分页技术结合sql语句实现

阅读更多
package jdbcDay03;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
public class TestPage {
	public static void main(String[] args) {
//		getResult(20,10);
//		getPage(10,5);			//每页是10条。,,第5页
		int page=0;
		System.out.println("你输入的页码是:");
		Scanner ss=new Scanner(System.in);  
		page=ss.nextInt();
		getpageSimple(10,page);
//		System.out.println(getTotalNumber());
	}
	public static void getResult(int m,int n){		//输出指定从m到n的记录
		String sql="select id ,user_id,login_time,logout_time,rn "+
		"from (select id,user_id,login_time,logout_time,rownum rn from mytemp where rownum<?)"
		+"where rn>=?";
		try {
			Connection conn=ConnectionUtils.openConnection();
			PreparedStatement pstmt=conn.prepareStatement(sql);
			pstmt.setInt(1,m);
			pstmt.setInt(2, n);
			ResultSet rs=pstmt.executeQuery();
			while(rs.next()){
				String line=rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(5);
				System.out.println(line);
			}
			pstmt.close();
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public static void getPage(int pageSize,int page){
		int  from=(page-1)*pageSize+1;
		int to=from+pageSize;
		String sql="select id ,user_id,login_time,logout_time,rn "+
		"from (select id,user_id,login_time,logout_time,rownum rn from mytemp where rownum<=?)"
		+"where rn>=?";
		try {
			Connection conn=ConnectionUtils.openConnection();
			PreparedStatement pstmt=conn.prepareStatement(sql);
			pstmt.setInt(1, to);
			pstmt.setInt(2, from);
			ResultSet rs=pstmt.executeQuery();
			while(rs.next()){
				String line=rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(5);
				System.out.println(line);
			}
			pstmt.close();
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	public static void getpageSimple(int pageSize,int page){
		int totalPage=0;				//总共有多少页数
		int totalNumber=getTotalNumber();
		
		if(totalNumber%pageSize==0){
			totalPage=totalNumber/pageSize;
		}else{
			totalPage=totalNumber/pageSize+1;
		}
		if(page>totalPage){
			page=totalPage;
		}else if(page<1){
			page=1;
		}
		int from =(page-1)*pageSize+1;
		int to=from +pageSize;
		getResult(to,from);
	}

	public static int getTotalNumber(){	//获得mytemp中共有多少条记录
		String  sql="select Count(*) num from mytemp";
		int n=-1;
		try {
			Connection conn=ConnectionUtils.openConnection();
			Statement stmt=conn.createStatement();
			ResultSet rs=stmt.executeQuery(sql);
			rs.next();
			n=rs.getInt("num");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return n;
	}
}

分享到:
评论

相关推荐

    JSP 中分页DEMO 例附数据库

    - **JDBC连接**:使用JDBC(Java Database Connectivity)API建立与数据库的连接,执行SQL语句并获取结果集。 - **结果集处理**:遍历结果集,将其转化为Java对象,然后传递给JSP页面进行显示。 - **关闭资源**:...

    jsp中分页显示的bean

    SQL查询语句应包含LIMIT和OFFSET子句来实现分页。例如,如果每页显示10条记录,第一页的查询语句可能是: ```sql SELECT * FROM table LIMIT 10 OFFSET 0; ``` 对于第n页,OFFSET应为 `(n-1) * pageSize`。 4....

    myeclipse 分页显示数据库记录,按标题排序实例

    它会接收用户的分页参数(如当前页和每页数量)以及排序条件,然后构建对应的SQL语句,通过JDBC执行查询,最后将结果返回给前端进行展示。前端页面通常使用AJAX技术动态更新内容,以保持用户体验的流畅性。 此外,...

    ssh实现分页功能,一个简单的小项目

    如果使用JDBC,上述SQL语句将在这个层面上执行。 4. **配置Action**:在`struts-config.xml`中配置处理分页请求的Action,定义一个ActionForm来接收用户输入的页码和每页大小。Action中调用Service进行分页查询,并...

    Java分页大全下载zip版

    2. SQL语句设计:编写能够执行分页查询的SQL语句,这通常需要结合数据库特定的语法来实现。 3. DAO层:在Java中,数据访问对象(DAO)负责与数据库交互,实现分页查询的逻辑。 4. Service层:业务逻辑层调用DAO...

    达内笔记(CoreJava.pdf、EJBNote.pdf、Hibernate.pdf、HTML.pdf、JDBC.pdf、JSP.pdf、Oracle SQL.pdf、Servlet.pdf、Struts.pdf、XML.pdf、分页.pdf、购物车.pdf)

    它允许Java程序执行SQL语句,进行数据查询、插入、更新和删除操作。理解JDBC的连接池、预编译语句和事务管理是数据库编程的关键。 6. **JSP**:JavaServer Pages是用于创建动态网页的技术,结合了HTML和Java代码。...

    java分页技术

    1. **JDBC分页**:最基础的分页方式是利用JDBC的SQL查询语句中的`LIMIT`(MySQL)或`OFFSET`(PostgreSQL,Oracle等)来实现。例如: ```sql SELECT * FROM table LIMIT 5 OFFSET 10; ``` 这表示获取第11行到第...

    Swing+MySQL实现简单分页

    2. **执行SQL查询**:在Swing应用中,我们可以使用`Statement`或`PreparedStatement`对象来执行SQL语句。在本例中,我们关注的是分页查询,所以会使用`LIMIT`子句。例如,获取第一页(假设每页10条)的SQL可能是: ...

    基于MySQL的数据库中间件Meituan-DBProxy.zip

    在手动添加黑名单时,只需要将用户的SQL语句输入,在内部自动转化成过滤条件,手动添加时是否生效由参数 manual-filter-flag 来控制,OFF:不生效,ON:立即生效 手动添加与自动添加两种情况下的过滤条件...

    Java 程序员容易犯的10个SQL错误

    4. **通过JDBC进行大量结果的分页**:直接使用数据库提供的分页机制,如LIMIT、OFFSET、TOP等,远比通过JDBC获取所有数据再在Java中分页要高效。使用数据库支持的分页方式能显著降低内存使用并提高性能。 5. **在...

    dorado4实例参考指南(pdf)

    例如,可以通过编写自定义的SQL语句或使用框架提供的API来实现特定的需求。 **2.3 主从表(SQLDATASET实现)** 在关系型数据库中,主从表结构是一种常见的模式,用于表示一对多的关系。Dorado通过`SQLDATASET`实现...

    Oracle针对数据库某一行进行操作的时候,如何将这一行加行锁

    首先,Oracle提供了一个SQL语句修饰符`FOR UPDATE`,用于在`SELECT`语句中锁定所选的行,以便在后续的事务中对这些行进行更新。这正是我们在标题和描述中提到的行锁实现方法。 1. **开启事务**:在对数据库进行任何...

Global site tag (gtag.js) - Google Analytics