【发布时间】:2021-03-15 15:39:46
【问题描述】:
我在应用程序中使用 java 和 sqlite。当我尝试更新表时工作正常,但是当我尝试在第一个表之后直接更新第二个表时,sqlite 告诉我忙[锁定]。我搜索解决方案但找不到。我在开始第二个更新之前关闭第一个更新的所有 Resultsets 、 PreparedStatements 和 Connection 但它不起作用。任何实际的解决方案或导致此错误的任何原因?
String sql2 = "UPDATE wages SET EPIDOMAADEIAS = ?,FMYEPIDOMATOSADEIAS = ?,ERGODOTHSEPIDOMAADEIAS = ?,ERGAZOMENOSEPIDOMAADEIAS = ? WHERE SURNAME = ?";
if(kathgoria.equals("ΥΠΑΛΛΗΛΟΣ")){
model.addRow(new String[]{surname,etairia,kathgoria,ep,erg,ergod,fmyS,syn});
ps = connection.prepareStatement(sql2);
try {
ps.setString(1,epS);
ps.setString(2, fmySS);
ps.setString(3, ergodS);
ps.setString(4, ergS);
ps.setString(5, surname);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int reS1 = 0;
try {
reS1 = ps.executeUpdate();
ps.close();
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
【问题讨论】:
-
你试过检查自动提交吗?
-
是的..它向我展示了它的真实性..
-
要得到答案,请出示代码。
-
我展示了。有什么建议吗?
-
关闭语句通常应该放在 finally 块中。因为如果您的更新引发异常,连接(也包括语句和结果集)将不会关闭!