[英]I can't delete from my SQL database using JTable
所以...我想使用JTable從數據庫中刪除一行,但我不知道為什么它沒有被刪除,也許DELETE istruction的sintaxis是錯誤的...
borrar.addActionListener(new ActionListener()
{
public void actionPerformed(final ActionEvent e)
{
System.out.println(tabla_proveedor.getSelectedRow());
if (tabla_proveedor.getSelectedRow()!=-1){
id_borrado=datos_proveedor[tabla_proveedor.getSelectedRow()][0];
System.out.println(id_borrado);
try{
Statement st = conexion.createStatement();
st.executeUpdate("DELETE FROM `boticaebenezer`.`proveedores` WHERE `proveedores`.`id_proveedor` = id_borrado;'");
System.out.println("Se borró");
}
catch (SQLException s){
System.out.println("SQLException: " + s.getMessage());
System.out.println(s.getErrorCode());
}
}
}
});
像這樣更新了我的程序,這就是我從陷阱中得到的錯誤。
SQLException:您的SQL語法有錯誤; 檢查與您的MySQL服務器版本相對應的手冊以獲取在第1行的'''附近使用的正確語法
1064
我不知道如何評估id_proveedor是否具有與字符串id_borrado相同的值
編輯:找到了解決辦法,真正sitnaxis是:st.executeUpdate( “DELETE FROM boticaebenezer
。 proveedores
WHERE proveedores
。 id_proveedor
= '” + id_borrado + “';”);
感謝您的所有幫助:)
使用executeUpdate
進行數據庫寫操作。 還可以改用PreparedStatement
防止SQL注入攻擊。
String sql = "DELETE FROM proveedores WHERE id_proveedor=?";
PreparedStatement preparedStatement = conexion.prepareStatement(sql);
preparedStatement.setString(1, "id_borrado");
int rows = preparedStatement.executeUpdate();
最后,始終在Exception塊中顯示異常消息,以幫助發現SQLException
問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.