簡體   English   中英

我無法使用JTable從我的SQL數據庫中刪除

[英]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 boticaebenezerproveedores WHERE proveedoresid_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM