Java无效的游标类型访问
我一直在 **********************错误************************************** 无效的游标类型:1003 我不明白为什么。我有RS.next(),然后我通过While(RS.next())。我做错了什么?请帮忙谢谢管理员说: 插入行是与可更新的结果集关联的特殊行 (强调矿山) 报告说: 默认的ResultSet对象是不可更新的,其光标仅向前移动。因此,您只能遍历它一次,并且只能从第一行到最后一行。可以生成可滚动和/或可更新的ResultSet对象。下面的代码片段(其中con是有效的连接对象)说明了如何创建一个可滚动且对他人更新不敏感的结果集,,并且该结果集是可更新的。有关其他选项,请参见结果集字段Java无效的游标类型访问,java,Java,我一直在 **********************错误************************************** 无效的游标类型:1003 我不明白为什么。我有RS.next(),然后我通过While(RS.next())。我做错了什么?请帮忙谢谢管理员说: 插入行是与可更新的结果集关联的特殊行 (强调矿山) 报告说: 默认的ResultSet对象是不可更新的,其光标仅向前移动。因此,您只能遍历它一次,并且只能从第一行到最后一行。可以生成可滚动和/或可更新的ResultSe
您需要打开可更新的结果集:
public static void insertData() {
String insertFirstName;
String insertLastName;
int id;
Scanner in = new Scanner(System.in);
System.out.println("insert First Name: ");
insertFirstName = in.nextLine();
System.out.println("insert Last Name: ");
insertLastName = in.nextLine();
System.out.println("First name " + insertFirstName + " Last Name "
+ insertLastName);
try {
Statement statement = null;
Class.forName(JDBC_DRIVER);
Connection con = DriverManager.getConnection(DB_URL, "", "");
System.out.println("Connection Successfull");
statement = con.createStatement();
String sql = "Select id, FirstName, LastName FROM PhoneBook";
ResultSet rs = statement.executeQuery(sql);
rs.moveToInsertRow();
rs.next();
while (rs.next()) {
rs.updateString("FirstName", insertFirstName);
rs.updateString("LastName", insertLastName);
rs.insertRow();
}
statement.close();
rs.close();
} catch (Exception e) {
System.out
.println("********************ERROR*********************");
System.out.println(e.getMessage());
}
}
有关更多信息,请参阅
除此之外,在rs.moveToInsertRow()之后调用rs.next()
时,您可能移动得有点太远了代码>。文档中的示例显示了您应该如何执行此操作:
statement = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE
);
你从哪里得到的错误?请发布完整堆栈跟踪。*************************************************错误*********************java.sql.SQLException:无效游标类型:1003位于sun.jdbc.odbc.JdbcOdbcResultSet.moveToInsertRow(JdbcOdbcResultSet.java:4306)位于javaapplication7.javaapplication7.main处的insertData(javaapplication7.java:89)(JavaApplication7.java:31)构建成功(总时间:3秒)请将其编辑到问题中,而不仅仅是放在注释中。
rs.moveToInsertRow(); // moves cursor to the insert row
rs.updateString("FirstName", insertFirstName);
rs.updateString("LastName", insertLastName);
rs.insertRow();