簡體   English   中英

JDBC - PreparedStatement executeUpdate() 返回 0

[英]JDBC - PreparedStatement executeUpdate() returning 0

try{
    Connection conn = getConnection();
    String strUpdateQuery = "update payment_table set  CREDIT_CARD_NO = ? where PAYMENT_KEY= ?";
    PreparedStatement ps =conn.prepareStatement(strUpdateQuery);
    for(int i=0;i<nodes.getLength();i++){
                ps.setString(1,"524364OQNBQQ4291");
                ps.setString(2,"20130215123757533280168");
                ps.executeUpdate();
                conn.commit();
    }
}catch(SQLException e){
    e.printStackTrace();
}

即使在我檢查了主鍵是否正確之后,也沒有更新一行。

嘗試批量更新:

void batchUpdate() {
    String strUpdateQuery = "UPDATE payment_table " +
                            "SET CREDIT_CARD_NO = ? " +
                            "WHERE PAYMENT_KEY= ?";
    try (Connection conn = getConnection();
         PreparedStatement ps = conn.prepareStatement(strUpdateQuery)) {
        for (int i = 0; i < nodes.getLength(); i++) {
            ps.setString(1, "524364OQNBQQ4291");
            ps.setString(2, "20130215123757533280168");
            ps.addBatch();
        }
        int[] updated = ps.executeBatch();
        // can log updated rows from "updated"
        // conn.commit(); in case autocommit set to false or used conn.setAutoCommit(false) somewhere
    }
    catch (SQLException e) {
        e.printStackTrace();
    }
}

ps.setXxx():可以查看訂單。 序列必須與resultSet返回的結果級別中的列名相同!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM