我想将我的所有数据从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();}
答案 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();
}