ho fatto questa prova qua con gli ArrayList<String> (che sono praticamente equivalenti a Vector<String> da quanto ho capito).
codice:
public ArrayList<String> select() throws ClassNotFoundException, SQLException, IOException {
ArrayList<String> list = null;
conn = DBManager.getInstance().takeConnection();
CallableStatement cstmt = conn.prepareCall("{ CALL getBook() }");
ResultSet rs = cstmt.executeQuery();
while (rs.next()) {
list = new ArrayList<String>();
list.add(String.valueOf(rs.getInt("book_id")));
list.add(rs.getString("title"));
list.add(rs.getString("author_name"));
list.add(rs.getString("editor_name"));
list.add(String.valueOf(rs.getDouble("price")));
list.add(rs.getString("isbn"));
list.add(rs.getString("note"));
// ((MyTableModel) PanelTable.getTable().getModel()).addRow(list.toArray());
}
cstmt.close();
return list;
}
poi nel JPanel:
codice:
ArrayList<ArrayList<String>> elementi = new ArrayList<ArrayList<String>>();
ArrayList<String> list = dbman.select();
for (int i = 0; i < list.size(); i++) {
elementi.add(list);
}
for (int j = 0; j < elementi.size(); j++) {
((MyTableModel) tableData.getModel()).addRow(elementi.get(j).toArray());
}
Ottengo solo 7 righe con lo stesso valore.
cioè il problema iniziale.
il problema che nn reisco a risolvere è questo: far ritornare dal metodo select() sia il numero di righe, che i valori per ogni riga.
EDIT: abbiamo risposto insieme. adesso provo.