JDBC可滚动结果集

package com.lxf.jdbc;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ScrollTest {
public static void main(String[] args) {
read();
}

// 查询
static void read() {
// limit 0,2表示从第一行开始,显示两行
String sql = "select * from user limit 0, 2";
try (Statement ps = JdbcUtils.getConnection().createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
// 执行语句
ResultSet rs = ps.executeQuery(sql);) {

// 处理结果
while (rs.next()) {
System.out.println(rs.getInt("id") + "\t"
+ rs.getString("name") + "\t" + rs.getDate("birthday")
+ "\t" + rs.getDouble("money"));
}
while (rs.previous()) {
System.out.println(rs.getInt("id") + "\t"
+ rs.getString("name") + "\t" + rs.getDate("birthday")
+ "\t" + rs.getDouble("money"));
}
//指定滚动到哪行
rs.absolute(3);

} catch (SQLException e) {
e.printStackTrace();
}
}

}

方法:crateStatement(int resultSetType,int resultSetConcurrency);
创建一个Statement对象,该对象将生产具有给定类型和并发性的ResultSet对象.
方法:createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability);
创建一个 Statement 对象,该对象将生成具有给定类型、并发性和可保存性的 ResultSet 对象.


结果集类型:
ResultSet.TYPE_FORWARD_ONLY:只能向前
ResultSet.TYPE_SCROLL_INSENSITIVE :可滚动,不感知数据变化。
ResultSet.TYPE_SCROLL_SENSITIVE 可滚动,并感知数据变化。
并发性:
ResultSet.CONCUR_READ_ONLY:只读
ResultSet.CONCUR_UPDATABLE :可更新
可保存性:
ResultSet.HOLD_CURSORS_OVER_COMMIT:在提交时候关闭结果集

这里用的Mysql数据库,有些数据库不支持滚动,可用以下方法但效率极低

static void read() {
// 创建语句
String sql = "select * from user";
try (Statement ps = JdbcUtils.getConnection().createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
// 执行语句
ResultSet rs = ps.executeQuery(sql);) {
int i=0;
// 处理结果
while (rs.next() && i<2) {
i++;
System.out.println(rs.getInt("id") + "\t"
+ rs.getString("name") + "\t" + rs.getDate("birthday")
+ "\t" + rs.getDouble("money"));
}
while (rs.previous()) {
System.out.println(rs.getInt("id") + "\t"
+ rs.getString("name") + "\t" + rs.getDate("birthday")
+ "\t" + rs.getDouble("money"));
}
//指定滚动到哪行
rs.absolute(3);


} catch (SQLException e) {
e.printStackTrace();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值