我试图在我的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+"'";
抱歉我的英文不好,谢谢
答案 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的类型才能使其正常工作。
通常,您可以看到使用预准备语句,您可以写出基本上是实际原始查询的内容。这使得您目前拥有的语法错误变得更加困难。