您的位置:首页 > 其它

JDBC 可滚动结果集

2013-12-08 12:06 344 查看
JDBC提供了可滚动结果集,可以向前滚,也可以向后滚。下面是几个API

Statement st =
connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//可回滚参数
ResultSet rs = st.executeQuery(sql);
rs.beforeFirst();//移到ResultSet最前面
rs.afterLast();//移到ResultSet最后面
rs.first();//获取第一跳记录
rs.isFirst();//是否是第一跳记录
rs.last();//获取最后一条记录
rs.isLast();
rs.absolute(9);//跳到第9条记录
rs.moveToInsertRow();
rs.next();//移到下一行
rs.previous();//移到上一行


可更新结果集

conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs.updateString("col name", "new value");
rs.updateRow();


可回滚结果集,可以用来分页,但是这种方法有个很大的缺点,必须将这些记录都读到内存中。对于有些数据库不支持分页的,可以使用此方法来进行分页。
//demo

package cn.itcast.jdbc;

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

public class ScrollTest {

/**
* @param args
* @throws SQLException
*/
public static void main(String[] args) throws SQLException {
scroll();
}

static void scroll() throws SQLException {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
// 2.建立连接
conn = JdbcUtils.getConnection();
st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = st
.executeQuery("select id, name, money, birthday  from user limit 150, 10");
while (rs.next()) {
System.out.println(rs.getObject("id") + "\t"
+ rs.getObject("name") + "\t"
+ rs.getObject("birthday") + "\t"
+ rs.getObject("money"));
}

System.out.println("------------");
rs.absolute(150); //跳到第150条记录,并取出连续10条
int i = 0;
while (rs.next() && i < 10) {
i++;
System.out.println(rs.getObject("id") + "\t"
+ rs.getObject("name") + "\t"
+ rs.getObject("birthday") + "\t"
+ rs.getObject("money"));
}

// if (rs.previous())
// System.out.println(rs.getObject("id") + "\t"
// + rs.getObject("name") + "\t"
// + rs.getObject("birthday") + "\t"
// + rs.getObject("money"));

} finally {
JdbcUtils.free(rs, st, conn);
}
}
}








                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: