我想使用RowSet接口实现更新,但是遇到一些错误。
我尝试使用以下代码:
// Load the JDBC driver
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("Driver loaded");
RowSetFactory rsFactory = RowSetProvider.newFactory();
JdbcRowSet rowSet = rsFactory.createJdbcRowSet();
rowSet.setUrl(DATABASE_URL);
rowSet.setUsername(USERNAME);
rowSet.setPassword(PASSWORD);
// make rowset updateable
rowSet.setReadOnly(false);
rowSet.setType(ResultSet.TYPE_SCROLL_INSENSITIVE);
rowSet.setConcurrency(ResultSet.CONCUR_UPDATABLE);
rowSet.setCommand("Select * from money");
rowSet.execute();
rowSet.absolute(3);
rowSet.updateInt("balance", parseIntBalance); //update third rows balance label to 5000
rowSet.updateRow();
以下是错误消息:
java.sql.SQLException: ResultSet is not updatable
at com.sun.rowset.JdbcRowSetImpl.checkTypeConcurrency(JdbcRowSetImpl.java:4139)
at com.sun.rowset.JdbcRowSetImpl.updateInt(JdbcRowSetImpl.java:2306)
at com.sun.rowset.JdbcRowSetImpl.updateInt(JdbcRowSetImpl.java:2735)