Cześć, mam taki problem, gdyż chcę wyświetlić całą tabelę z bazy danych w jTable, lecz nie wiem w jaki sposób przełączać się między kolejnymi rekordami by nie wypisywać ciągle tych samych..
Fragment klasy gui:
private void jWyswietlActionPerformed(java.awt.event.ActionEvent evt) {
for (int i=0; i<3;i++){
zp.wyswietlDaneZBazy();
DefaultTableModel model =(DefaultTableModel)jTabela.getModel();
model.addRow(new String[]{zp.id_klienta,zp.imie,zp.nazwisko,zp.adres,zp.miasto,zp.telefon});
}
// TODO add your handling code here:
}
Fragment z klasy ZP:
public void wyswietlDaneZBazy(){
String polaczenieURL = "jdbc:postgresql://localhost:5432/postgres?user=postgres&password=123456";
//Tworzymy proste zapytanie do bazy danych
String wyswietl = "Select * FROM public.\"Klient\"";
Connection conn = null;
try {
//Ustawiamy dane dotyczące podłączenia
conn = DriverManager.getConnection(polaczenieURL);
//Ustawiamy sterownik MySQL
Class.forName("com.mysql.jdbc.Driver");
//Uruchamiamy zapytanie do bazy danych
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(wyswietl);
while (rs.next()) {
wyswietl(rs);
}
conn.close();
}
//Wyrzuć wyjątki jężeli nastąpią błędy z podłączeniem do bazy danych lub blędy zapytania o dane
catch(ClassNotFoundException wyjatek) {
System.out.println("Problem ze sterownikiem");
}
catch(SQLException wyjatek) {
// e.printStackTrace();
// System.out.println("Problem z logowaniem\nProsze sprawdzic:\n nazwę użytkownika, hasło, nazwę bazy danych lub adres IP serwera");
System.out.println("SQLException: " + wyjatek.getMessage());
System.out.println("SQLState: " + wyjatek.getSQLState());
System.out.println("VendorError: " + wyjatek.getErrorCode());
}
}
public static void wyswietl(ResultSet rs){
try{
id_klienta = rs.getString(1);
imie = rs.getString(2);
nazwisko = rs.getString(3);
adres = rs.getString(4);
miasto = rs.getString(5);
telefon = rs.getString(6);
daneZBazy = rs.getString(1);
System.out.print("\n" + daneZBazy + " ");
daneZBazy= rs.getString(2);
System.out.print(daneZBazy+ " ");
daneZBazy = rs.getString(3);
System.out.print(daneZBazy+ " ");
daneZBazy = rs.getString(4);
System.out.print(daneZBazy+ " ");
daneZBazy = rs.getString(5);
System.out.print(daneZBazy+ " ");
daneZBazy = rs.getString(6);
System.out.print(daneZBazy+ " ");
}catch(SQLException e) {
e.printStackTrace();
}
}
W konsoli dobrze wypisuje, lecz do jTable przesyła tylko ostatni rekord