多重更新仅适用于 jdbc 中的查询之一
Multiple update only works on one of the query in jdbc
我的应用程序中有一个部分需要同时更新两个 table(WORKTR 和 BRTR)。
但是,该程序仅适用于第一个 table 更新查询,而第二个查询无效,因此仅更新了 table。 Log错误处没有错误提示。
这是我的 jdbc 代码,用于更新 table:
String query=("UPDATE WORKTR SET status = ? WHERE Pf_no = ? AND status = ? AND Scan_by= ? AND Start_date= ?");
PreparedStatement ps = con.prepareStatement(query);
// set the preparedstatement parameters
ps.setString(1,a_status);
ps.setString(2,OperatorPF);
ps.setString(3,b_status);
ps.setString(4,PIC);
ps.setString(5,dates);
// call executeUpdate to execute our sql update statement
ps.executeUpdate();
if (ps.executeUpdate()==1) {
String queryBRTR= ("Update BRTR set end_break = ?, status= ? where and PF_No= ? and work_date= ?");
PreparedStatement br = con.prepareStatement(queryBRTR);
// set the preparedstatement parameters
br.setString(1,currentTime);
br.setString(2,a_status);
// br.setString(3,b_status);
br.setString(3,OperatorPF);
br.setString(4,dates);
// call executeUpdate to execute our sql update statement
br.executeUpdate();
if( br.executeUpdate()==1){
z="You may resume your work now";
}
else{
ps.close();
br.close();
}
请突出显示是否有任何错误或建议另一种可以更新两者的方法 table。
改为
int rowsChanged = ps.executeUpdate();
if (rowsChanged >= 1) {
您给 executeUpdate
打了两次电话。
- 不应重新执行 PreparedStatement
- 状态已更改,因此即使您可以重新使用 PreparedStatement ,更新也可能会失败
我的应用程序中有一个部分需要同时更新两个 table(WORKTR 和 BRTR)。
但是,该程序仅适用于第一个 table 更新查询,而第二个查询无效,因此仅更新了 table。 Log错误处没有错误提示。
这是我的 jdbc 代码,用于更新 table:
String query=("UPDATE WORKTR SET status = ? WHERE Pf_no = ? AND status = ? AND Scan_by= ? AND Start_date= ?");
PreparedStatement ps = con.prepareStatement(query);
// set the preparedstatement parameters
ps.setString(1,a_status);
ps.setString(2,OperatorPF);
ps.setString(3,b_status);
ps.setString(4,PIC);
ps.setString(5,dates);
// call executeUpdate to execute our sql update statement
ps.executeUpdate();
if (ps.executeUpdate()==1) {
String queryBRTR= ("Update BRTR set end_break = ?, status= ? where and PF_No= ? and work_date= ?");
PreparedStatement br = con.prepareStatement(queryBRTR);
// set the preparedstatement parameters
br.setString(1,currentTime);
br.setString(2,a_status);
// br.setString(3,b_status);
br.setString(3,OperatorPF);
br.setString(4,dates);
// call executeUpdate to execute our sql update statement
br.executeUpdate();
if( br.executeUpdate()==1){
z="You may resume your work now";
}
else{
ps.close();
br.close();
}
请突出显示是否有任何错误或建议另一种可以更新两者的方法 table。
改为
int rowsChanged = ps.executeUpdate();
if (rowsChanged >= 1) {
您给 executeUpdate
打了两次电话。
- 不应重新执行 PreparedStatement
- 状态已更改,因此即使您可以重新使用 PreparedStatement ,更新也可能会失败