从数据库向表中添加数据

时间:2017-12-19 18:09:39

标签: java mysql swing

我正在从数据库中检索数据并将其放在jtable上,11个项目来自数据库,但只有第1个项目在jtable上打印11次,我不知道我在哪里弄错了,我已经使用了循环语句中的变量,以便它可以自动递增但不起作用。

        try{

        java.util.Vector v=DatabaseManager.getGroceryItems(bean.getCategoryId());


        for(int i=0;i<v.size();i++){

            GroceryItemsBean bean2=(GroceryItemsBean)v.elementAt(i);

                row.add(bean2.getItemId());
                row.add(bean2.getItemName());
                row.add(bean2.getBarcode());
                row.add(bean2.getStock());
                row.add(bean2.getPurchasePrice());
                row.add(bean2.getUnitPrice());
                row.add(bean2.getDisc());
                row.add(bean2.getTax());
                row.add(bean2.getUnit());

                dataModel.addRow(row);

        }

    }catch(Exception e){
       e.printStackTrace();
       javax.swing.JOptionPane.showMessageDialog(this, "error: "+e.getMessage());
  }

The output is here

2 个答案:

答案 0 :(得分:0)

我看不到你的代码,但它看起来像是循环中的一个新row对象,否则它仍然具有循环第一次迭代的值。

或者你应该清除每次迭代结束时的行。

dataModel.addRow(row);
row.clear()

答案 1 :(得分:0)

您需要创建一个新的&#34;行&#34;数据库中每行数据的向量:

GroceryItemsBean bean2=(GroceryItemsBean)v.elementAt(i);
Vector<Object> row = new Vector<Object>();