-1

你好我有问题..谁能给我片段?我有显示 JList 项目的 MySql 表,所以我可以轻松添加项目但不能从数据库中删除它?同时按下删除项目?

我搜索了很多没有人需要做的事情..我想知道它怎么可能?

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                             
     try {
         Class.forName("com.mysql.jdbc.Driver");  
         Connection con= (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","ubuntu123");   

         PreparedStatement stmt = null;
         ResultSet rs =  null;

         String [] data;
         data = new String[100];
         int i=0;

         DefaultListModel listmodel = (DefaultListModel) jList2.getModel();
         int selectedIndex = jList2.getSelectedIndex();
         if (selectedIndex != -1) {
             listmodel.remove(selectedIndex);

             String query = "delete from supplierinfo where companyname = ?";
             stmt = (PreparedStatement) con.prepareStatement(query);
             stmt.setInt(1, i);
             stmt.execute();

             con.close();

             // i= i+1;
         }
    } catch(Exception e) {
        System.out.println("3rd catch " +e);
    }
}                                        
4

2 回答 2

1

当您将元素从ListModel.

之后,您可以获得有关此项目的所有重要信息并在查询中使用它。

使用这样的东西:

YourObjectType obj = (YourObjectType) listmodel.remove(selectedIndex);

String query = "delete from supplierinfo where companyname = ?";
                    stmt = (PreparedStatement) con.prepareStatement(query);
                    stmt.setInt(1, obj.getCompanyName());
                    stmt.execute();
于 2013-04-01T11:15:31.627 回答
0

ListModel#getElementAt(int)对当前选定的索引使用该方法。

如果您确定您的模型仅包含 String 实例,您可以直接将其转换为 String,然后istmt.setInt(1, i);

于 2013-04-01T11:12:12.590 回答