有时候我们可能需要直接显示某某列元素的第某行..这个时候就需要对ResultSet对象进行指针的操作
import java.sql.*;
public class TestScroll {
public static void main(String args[]) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:mysql://localhost/mydata?user=root&password=root";
Connection conn = DriverManager
.getConnection(url, "scott", "tiger");
//TYPE_SCROLL_INSENSITIVE 该常量指示可滚动但通常不受其他的更改影响的 ResultSet 对象的类型。
//CONCUR_READ_ONLY 该常量指示不可以更新的 ResultSet 对象的并发模式。
Statement stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt
.executeQuery("select * from emp order by sal");
//将指针从当前位置下移一行。
rs.next();
//得到第(1)列,指针行的数据
System.out.println(rs.getInt(1));
//将指针移动到此 ResultSet 对象的最后一行。
rs.last();
System.out.println(rs.getString(1));
//检索指针是否位于此 ResultSet 对象的最后一行。
System.out.println(rs.isLast());
//检索指针是否位于此 ResultSet 对象的最后一行之后。
System.out.println(rs.isAfterLast());
//检索当前行编号 (在这里就是现实这个表一共多少行.因为已经到了最后行)
System.out.println(rs.getRow());
//将指针移动到此 ResultSet 对象的上一行。
rs.previous();
System.out.println(rs.getString(1));
//将指针移动到此 ResultSet 对象的给定行编号。(将指针移动到第六行)
rs.absolute(6);
System.out.println(rs.getString(1));
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}