有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何限制MySQL中删除的特定行

我使用jComboBox从表中选择供应商,所以我在表中为“无”选择的供应商创建了-1id

-1行也出现在我获取所有记录的用户面前 jTable

我不希望用户删除这一行可能是无意或有意的

我可以吃点这样的吗
我正在使用MySQL和Java

String comName = (String) jSupplrsComboBox.getSelectedItem();

            Suppliers suppliers = manager.searchSuppCompny(comName);
            if (comName.equals("none")) {
                receivings.getSuppliers().setId(-1);
                receivings.setSuppliers(suppliers);
            }
            receivings.setSuppliers(suppliers);  

Suppliers提取到jComboBox,然后手动添加“无”文本,这样它在Suppliers表中就不匹配了


共 (1) 个答案

  1. # 1 楼答案

    我不确定你到底想达到什么目的,但如果你使用的是JComboBox,我想你是在按照组合框选择所指示的供应商筛选数据库。这也意味着您的组合框模型需要填充数据库中存在的条目

    这是一种将字符串从枚举设置到组合框的快速方法,从数据库传递条目应该以类似的方式工作,但可能需要解决确保不存在重复的问题

    jSupplrsComboBox.setModel(new DefaultComboBoxModel<>(SupplierId.values()));
    

    在链接Java - Check Boxes in a JComboBox中,乔纳森·范伯格的回答可能更适合于多个过滤器

    至于MYSQL,我假设您有权进行修改,如果您添加一个额外的字段,比如isValid,以指示所述条目是否有效,可能会更好。在这种情况下,您可以在jSupplrsComboBox.getSelectedItem()上使用额外的WHERE isValid = 1进行筛选。 但是你的问题更倾向于Java而不是MYSQL,所以我不会再多提了。查看MySQL Boolean Question和相关链接,了解更多相关信息