我向数据库中插入了数据,插入完毕之后我想查看整个表当中的数据。但是只能看到以前的,看不到最新的。我想到使用refreshRow方法刷新纪录,代码片断如下:
public static void main(String [] args) {try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ce) {
System.out.println(ce);
}
try {
String url = "jdbc:odbc:test";
Connection con = DriverManager.getConnection(url);
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("select * from friends ");
rs.moveToInsertRow();//进行插入准备.
rs.updateString("Name", "Jack");
rs.updateString("Address", "Tokyo");
rs.updateInt("salary", 65000);
rs.insertRow();//插入数据.
rs.beforeFirst();//将指针移动到此 ResultSet 对象的开头,正好位于第一行之前。
rs.refreshRow();//执行到此便出了异常。
System.out.println("插入一行后的 FRIENDS 表:");
while (rs.next()) {
String name = rs.getString("Name");
String address = rs.getString("Address");
int salary = rs.getInt("Salary");
System.out.print(name + "\t" + address + "\t" + salary);
System.out.println(" ");
}
rs.close();
stmt.close();
con.close();
} catch (SQLException ce) {
ce.printStackTrace();
System.out.println(ce);
}
}
}
出现的异常如下:
java.sql.SQLException: Cursor position is invalid
at sun.jdbc.odbc.JdbcOdbcResultSet.refreshRow(JdbcOdbcResultSet.java:4135)
at JdbcInserttest.main(JdbcInserttest.java:48)
java.sql.SQLException: Cursor position is invalid
这个问题怎么解决阿。谢谢了。
public static void main(String [] args) {try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ce) {
System.out.println(ce);
}
try {
String url = "jdbc:odbc:test";
Connection con = DriverManager.getConnection(url);
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("select * from friends ");
rs.moveToInsertRow();//进行插入准备.
rs.updateString("Name", "Jack");
rs.updateString("Address", "Tokyo");
rs.updateInt("salary", 65000);
rs.insertRow();//插入数据.
rs.beforeFirst();//将指针移动到此 ResultSet 对象的开头,正好位于第一行之前。
rs.refreshRow();//执行到此便出了异常。
System.out.println("插入一行后的 FRIENDS 表:");
while (rs.next()) {
String name = rs.getString("Name");
String address = rs.getString("Address");
int salary = rs.getInt("Salary");
System.out.print(name + "\t" + address + "\t" + salary);
System.out.println(" ");
}
rs.close();
stmt.close();
con.close();
} catch (SQLException ce) {
ce.printStackTrace();
System.out.println(ce);
}
}
}
出现的异常如下:
java.sql.SQLException: Cursor position is invalid
at sun.jdbc.odbc.JdbcOdbcResultSet.refreshRow(JdbcOdbcResultSet.java:4135)
at JdbcInserttest.main(JdbcInserttest.java:48)
java.sql.SQLException: Cursor position is invalid
这个问题怎么解决阿。谢谢了。
rs.beforeFirst();//此句把指针指向了第一行的前面,实际上没有指向任何行
rs.refreshRow();//此方法是用数据库中当前的数据来刷新当前ResultSet的当前行,游标没有指向任何行时执行此方法,显然会有问题