首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不能使用JTable从我的SQL数据库中删除

我不能使用JTable从我的SQL数据库中删除
EN

Stack Overflow用户
提问于 2013-05-16 09:02:56
回答 1查看 711关注 0票数 0

所以..。我想用JTable从数据库中删除一行,但是我不知道为什么它没有被删除,可能是删除结构的汉化是错误的…

代码语言:javascript
复制
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 + "';");

感谢您的帮助:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-16 09:05:55

使用executeUpdate进行数据库写操作。另外,为了防止SQL Injection攻击,请改用PreparedStatement

代码语言:javascript
复制
String sql = "DELETE FROM proveedores WHERE id_proveedor=?";
PreparedStatement preparedStatement =  conexion.prepareStatement(sql);
preparedStatement.setString(1, "id_borrado");

int rows = preparedStatement.executeUpdate();

最后,始终在异常块中显示异常消息,以帮助查找SQLException问题的根源。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16577426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档