代替添加类别名称,应该使用JComboBox java netbeans将类别ID添加到数据库中

时间:2019-01-16 05:02:31

标签: java database swing jcombobox

应该将类别ID添加到数据库表中,而不是添加类别名称。我正在创建简单的销售项目。加载后,JComboBox类别名称应显示出来,从组合框中选择该项目并添加到数据库中,而不是添加类别名称,将类别ID添加到数据库中。从创建CategoryItem类对象的表中加载记录:

jComboBox1.addItem(CategoryItem(rs.getInt(1),rs.getString(2))); 

我无法加载数据。我在下面逐步附上了代码。

我创建了课程CategoryItem

class CategoryItem
{
    int id;
    String name;

    // add other fields if you want...

    CategoryItem(int id, String name)
    {
        this.id = id;
        this.name = name;
    }
 public String toString()
    {
        return name;
    }
}

从创建CategoryItem类对象的表中加载记录:

jComboBox1.addItem(CategoryItem(rs.getInt(1),rs.getString(2)));  

在这一行,我无法加载数据。

public void LoadCategory()
{
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con1 = DriverManager.getConnection("jdbc:mysql://localhost/javapos","root","");
            insert = con1.prepareStatement("SELECT * FROM category");
             ResultSet rs = insert.executeQuery();
             jComboBox1.removeAllItems();

             while(rs.next())
             {
                 jComboBox1.addItem(CategoryItem(rs.getInt(1),rs.getString(2)));               
             }        
             } 
        catch (Exception e) {
            }
}

这是将记录插入到表中的代码。

String name =txtproduct.getText();
            String dec =txtdec.getText();

           CategoryItem item = (CategoryItem)jComboBox1.getSelectedItem();

            Class.forName("com.mysql.jdbc.Driver");
            con1 = DriverManager.getConnection("jdbc:mysql://localhost/javapos","root","");
            insert = con1.prepareStatement("insert into product (productname,description,category)values(?,?,?)");
            insert.setString(1,name);
            insert.setString(2,dec);
             insert.setInt(3,item.id);
            insert.executeUpdate();
            JOptionPane.showMessageDialog(this, "Sucsessfully Saved");

0 个答案:

没有答案