我在更新mssql给定的结果集时遇到问题。
我想用添加()后找到的新值来更新表( createaccount )中具有主键 id 的列(initial_deposit)初始和已存金额)。在名为( textFieldamount )的textField上将 AmountDeposited 输入为双精度值,并且initial也是结果集中的double值。
我遇到错误。 (结果集不可更新(引用表没有主键)。
此结果集必须来自使用结果集类型ResultSet.CONCUR_UPDATABLE创建的语句。
这是我的代码
String url = "jdbc:mysql://localhost:3306/STATTER_BANK";
String user = "root";
String password = "";
double amountDeposited = Double.parseDouble(textFieldamount.getText());
public void theQuery {
String query1 = "SELECT initial_deposit FROM createaccount"+"WHERE id=1";
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection(url, user, password);
PreparedStatement stt = con.prepareStatement(query1, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stt.executeQuery();
while (rs.next()) {
double initial = rs.getDouble("initial_deposit");
rs.updateDouble( "initial_deposit", initial + amountDeposited);
rs.updateRow();
}
} catch (Exception e ) {
e.printStackTrace();
}
}
答案 0 :(得分:0)
可以参考。
similar question perhaps it is the same one
使用ResultSet.TYPE_SCROLL_INSENSITIVE更改ResultSet.TYPE_SCROLL_SENSITIVE应该可以。