проблема с добавлением данных из БД в jtable - PullRequest
0 голосов
/ 18 августа 2011

Я хочу добавить все свои данные из БД в jtable, но используя этот код, я получаю только последнюю строку из БД, добавленную в таблицу несколько раз.Может кто-нибудь сказать, где ошибка?

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 Ответ

2 голосов
/ 18 августа 2011

Во-первых,

Замените строку, содержащую clear(), на Vector<String> record = new Vector<String>();

Во-вторых, я думаю, что то, что вы делаете, возможно, правильно, но ваша печать - проблема.

Поскольку у вас есть вектор векторов, содержащий строки, я бы вывел его так:

for(Vector stringVect : v) {
    for(String s : stringVect) {
        System.out.print(s+ '\t');
  }
  System.out.println();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...