更新java中的查询语法错误

时间:2018-05-12 05:49:45

标签: java database

我试图在我的java上进行更新查询,我一直在我的sql语法中得到错误但我已经尝试在我的sqlyog中执行查询并且它有效,但它在我的程序中不起作用,这是我的查询

String query = "UPDATE t_surat_masuk SET kode_klasifikasi = '"+kode_klasifikasi+"',"

                        + " pengirim = '"+pengirim+"',"
                        + " no_surat = '"+no_surat+"', "
                        + " tgl_surat = '"+tanggalsurat+"',"
                        + " perihal = '"+perihal+"',"
                        + " tgl_surat_masuk = '"+tanggalmasuk+"', "
                        + " penerima = '"+penerima+"', "
                        + " WHERE id_surat='"+id_surat+"'";
抱歉我的英文不好,谢谢

1 个答案:

答案 0 :(得分:1)

您的确切语法错误是您在SET子句之后的WHERE子句后面有一个逗号逗号。但这里最好的答案是你使用准备好的声明:

String sql = "UPDATE t_surat_masuk SET kode_klasifikasi = ?, pengirim = ?, ";
sql += "no_surat = ?, tgl_surat = ?, perihal = ?, tgl_surat_masuk = ?, penerima = ? ";
sql += "WHERE id_surat = ?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, kode_klasifikasi);
ps.setString(2, pengirim);
ps.setString(3, no_surat);
ps.setString(4, tanggalsurat);
ps.setString(5, perihal);
ps.setString(6, tanggalmasuk);
ps.setString(7, penerima);
ps.setInt(8, id_surat);
ps.executeUpdate();

请注意,我假设所有列都是字符串,id_surat列除外,它听起来像一个整数列。您可能必须更改上述某些setter的类型才能使其正常工作。

通常,您可以看到使用预准备语句,您可以写出基本上是实际原始查询的内容。这使得您目前拥有的语法错误变得更加困难。