我想将光标的位置更改为第一行,但我不知道为什么我的代码不起作用。当我添加rs2.first()
:时
我也得到了这个错误:
此方法应仅在可滚动的ResultSet对象上调用(类型为type_SCROLL_INSENSITIVE)。
try{
String driver = "org.apache.derby.jdbc.ClientDriver";
Class.forName(driver).newInstance();
String url = "jdbc:derby://localhost:1527/test";
Connection conn = DriverManager.getConnection(url);
String query = "select * from APP.RANKING";
Statement stmt = conn.createStatement();
Statement stmt2 = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
ResultSet rs2 = stmt2.executeQuery(query);
while (rs.next()){
String BID = rs.getString("BALLOT_ID");
String CN = rs.getString("CANDIDATE_NAME");
String ROID = rs.getString("USER_ID");
Ro1_ID = ROID;
String RA = rs.getString("RANK");
int rowNum = rs.getRow();
int rowNum2;
boolean In_check = false;
while(rs2.next()){
In_ballot.addElement(BID);
}
rs2.First();
In_ballot.addElement(BID);
}
}
catch(Throwable e) {
System.err.println(e.getMessage());
}
this.InB_list.setModel(In_ballot);
默认情况下,在连接中调用createStament()
会导致每个ResultSet
都具有类型"type_FORWARD_ONLY"-这会导致使用first()
时出现异常。
相反,使用createStatement
的另一个版本,比如这个版本。
这个在Derby中创建可滚动ResultSet
的示例可能会有所帮助。