将数据从DB添加到jtable的问题

时间:2011-08-18 13:07:09

标签: java database jtable

我想将我的所有数据从DB添加到jtable,但是使用此代码我只得到DB的最后一行,并将其添加到表格中。 有人能说出错误在哪里吗?

public Vector getOrder() throws Exception
{ 
    DbConnection();
    Statement st = null;
    ResultSet res =null;
    String query="Select * From Orders;";

try{
    st=connect.createStatement();
    res=st.executeQuery(query);
    Vector v =new Vector();
    Vector<String> record = new Vector<String>();
    int i=0;
    while(res.next())
    { 
    record.clear();
        uzsakNr=res.getString("Uzsakymo_nr");           
        priemDat=res.getString("Priemimo_data");
        irengPav=res.getString("Irenginio_pavadinimas");
        model=res.getString("Modelis");
        status=res.getString("Statusas");
        grazDat=res.getString("Grazinimo_data");
        clientId=Long.toString(res.getLong("ClientId"));

        //record.addElement(i);
        record.addElement(uzsakNr);
        record.addElement(priemDat);
        record.addElement(irengPav);
        record.addElement(model);
        record.addElement(status);
        record.addElement(grazDat);
        record.addElement(clientId);
        //record.addElement("");
        v.addElement(record);       
        i++;
    }
    //Zle vydaji, daji tyko trzy takiesame ostatnie
    System.out.println(v);
    return v;
}finally {
    if(res!=null) res.close();
    if(st!=null) st.close();
}

}

在另一个班级

        try{
        Vector ve=db.getOrder();

        String heading[]={"uzsakNr","priemDat","irengPav","model","status","grazDat","ClientID"};
        Vector columnHeads= new Vector();
        for (int i=0;i<heading.length; i++)
            columnHeads.addElement(heading[i]);

        table = new JTable(ve,columnHeads);
        table.addMouseListener(new TableMouseListener());
        scrollPane.setViewportView(table);
        UzsakPanel.add(scrollPane);
        scrollPane.setBounds(10, 10, 901, 200);
        }catch(Exception e2){e2.printStackTrace();}

1 个答案:

答案 0 :(得分:2)

首先,

将包含clear()的行替换为Vector<String> record = new Vector<String>();

其次,我认为你所做的可能是正确的,但你的印刷是问题所在。

由于你有一个包含字符串的向量向量,我会像这样打印

for(Vector stringVect : v) {
    for(String s : stringVect) {
        System.out.print(s+ '\t');
  }
  System.out.println();
}