1

我想使用 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)
4

0 回答 0