通过单击按钮

时间:2017-09-21 04:07:55

标签: java mysql database swing

我想建立一个POS系统。 我输入一个项目编号(在jTextField中)并按下按钮。 然后根据项目编号,其名称和价格应显示在jTable中(数据库中项目编号的相关记录)

然后我输入另一个号码并按下按钮。并且它也应该在jTable中显示而不清除现有数据(作为新行)

String SQL = "SELECT name,price FROM items WHERE ID = ' "+jTextField1.getText()+" ' ";
pst = Conn.prepareStatement(sql);
rs = pst.executeQuery();
jTable1.setModel(DbUnits.resultSetToTableModel(rs));

请帮我构建一下。 注意:我已经构建了这个程序。我知道这不是一个自由网站! 我要求帮助添加包含数据的新行而不清除现有数据。

2 个答案:

答案 0 :(得分:0)

  

它也应该在jTable中显示而不清除现有数据(作为新行)

那么你就不能使用setModel(...)方法,因为这会用新数据替换所有现有数据。

你不能使用DbUtils.resultSetToTableModel(...)方法,因为那将返回新的TableModel。

相反,您需要一次从ResultSet行读取数据。当您阅读每一行时,您可以使用addRow(...)的{​​{1}}方法将每行新数据添加到现有模型中。

答案 1 :(得分:0)

我使用此代码而不是上面的代码。但它在jTable中显示 javax.swing.table.DefaultTableModel@57168dd4

String sql = "SELECT name,price FROM items WHERE ID = '"+jtxt1.getText()+"'";
    pst = conn.prepareStatement(sql);
    rs=pst.executeQuery();
    DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
    Vector row = new Vector();
    row.add(DbUtils.resultSetToTableModel(rs));
    model.addRow(row);

帮助!!