无法从msql表更新结果集

时间:2018-11-14 09:57:36

标签: java sql-server tsql

我在更新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();  
    }
}

1 个答案:

答案 0 :(得分:0)

可以参考。
similar question perhaps it is the same one
使用ResultSet.TYPE_SCROLL_INSENSITIVE更改ResultSet.TYPE_SCROLL_SENSITIVE应该可以。