如何使用复合键在Java中为表编写Delete SQL语句?

时间:2018-12-17 16:25:58

标签: java mysql sql jdbc

我99%的问题在某处得到了回答,但是我似乎找不到我想要的东西。到目前为止,我一直在编写sql语句以从Java的表中删除行,如下所示(这是针对名为Crime的表,其中主键称为CrimeId。CrimeId来自UI)

private DatabaseAPI db;
PreparedStatement st=db.connection.prepareStatement("DELETE FROM crime WHERE CrimeId = '"+Integer.parseInt(txtCrimeId.getText())+"';");

如何编写复合键的where语句?例如,对于称为费用的表,其中的键既是CrimeID又是CrimeID?

4 个答案:

答案 0 :(得分:1)

如下所示:

PreparedStatement st=db.connection.prepareStatement(
  "DELETE FROM crime WHERE CrimeId = ? AND CriminalID = ?" );
st.setInt(1, Integer.parseInt(txtCrimeId.getText() );
st.setInt( 2, Integer.parseInt(txtCriminaId.getText());

答案 1 :(得分:0)

DELETE FROM charges WHERE CrimeId = '____' AND CriminalID = '____' ;

这是您要找的吗?

答案 2 :(得分:0)

您需要使用AND。使用AND,您可以结合条件。

  

阅读this了解更多信息

所以您的代码看起来像

DELETE FROM charges WHERE CrimeId = 'YourCrimeID' AND CriminalID = 'YourCriminalID' ;

只需替换YourCriminalIDYourCrimeID

答案 3 :(得分:0)

我相信下一个代码应该对您有用

PreparedStatement st=db.connection.prepareStatement("DELETE FROM crime WHERE CrimeId = ? and CriminalID = ?");
st.setInt(1, Integer.parseInt(txtCrimeId.getText()));
st.setInt(2, Integer.parseInt(txtCriminalID.getText()));
st.executeUpdate();