所以..。我想用JTable从数据库中删除一行,但是我不知道为什么它没有被删除,可能是删除结构的汉化是错误的…
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());
}
}
}
});像这样更新我的程序,这是我从catch中得到的错误。
SQLException:您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,了解要在第1行的“”附近使用的正确语法。
1064
我不知道如何计算id_proveedor是否与字符串id_borrado具有相同的值
编辑:找到解决方案,真正的站点轴是: st.executeUpdate("DELETE FROM boticaebenezer.proveedores WHERE proveedores.id_proveedor = '“+ id_borrado + "';");
感谢您的帮助:)
发布于 2013-05-16 09:05:55
使用executeUpdate进行数据库写操作。另外,为了防止SQL Injection攻击,请改用PreparedStatement。
String sql = "DELETE FROM proveedores WHERE id_proveedor=?";
PreparedStatement preparedStatement = conexion.prepareStatement(sql);
preparedStatement.setString(1, "id_borrado");
int rows = preparedStatement.executeUpdate();最后,始终在异常块中显示异常消息,以帮助查找SQLException问题的根源。
https://stackoverflow.com/questions/16577426
复制相似问题