selectprovider 分页_JDBC分页查询的简单实现

该博客介绍了如何使用JDBC实现分页查询,通过创建CachedRowSet并设置页面大小,从结果集中获取指定页的数据。提供了一个名为`pageQuery`的方法,接受SQL查询语句、页面大小和页数作为参数,演示了分页查询的完整过程。
摘要由CSDN通过智能技术生成

JDBC 分页查询源码

/**

* 分页查询

*

* @param sql 分页查询语句

* @param page 页数(最小为1)

* @param pageSize 分页大小

*/

public void pageQuery(String sql,int pageSize, int page) {

Connection conn = null;

Statement st = null;

ResultSet rs = null;

RowSetFactory factory = null;

try {

// 获取数据库的连接

conn = JdbcUtils.getConnection();

// 设置RS游标移动类型

st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

rs = st.executeQuery(sql);

// 结果集元数据信息对象

ResultSetMetaData metaData = rs.getMetaData();

// 创建可以产生CachedRowSet的工厂

factory = RowSetProvider.newFactory();

CachedRowSet cachedRs = factory.createCachedRowSet();

// 最关联的两句

// 设置每页的大小

cachedRs.setPageSize(pageSize);

// 第一个参数:将Rs中query到的结果集输入到cachedRs中

// 第二个参数:从第(page - 1) * pageSize + 1行开始抓取结果集,一次抓取一页

cachedRs.populate(rs,(page - 1) * pageSize + 1);

// 打印列名

for (int i = 0; i < metaData.getColumnCount(); i++) {

System.out.print(metaData.getColumnName(i + 1) + "\t");

}

System.out.println();

// 对分页的结果集进行处理

while (cachedRs.next()) {

for (int i = 0; i < metaData.getColumnCount(); i++) {

System.out.print(cachedRs.getString(i + 1) + "\t");

}

System.out.println();

}

rs.close();

st.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

} finally {

// 释放与JDBC有关的资源

JdbcUtils.release(conn,st,null,rs);

}

}

测试类

package deptmgr.test;

import deptmgr.dao.BaseDao;

/**

* @author mmengyiyu

* @date 2019/11/15 21:00

*/

public class BaseDaoTest {

public static void main(String[] args) {

BaseDao baseDao = new BaseDao();

baseDao.pageQuery("select * from EMP",5,2);

}

}

运行结果

SEE ALSO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值