![](/img/trans.png)
[英]JDBC, MySQL - DML Error with PreparedStatement executeUpdate
[英]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.