Witam serdecznie,
mam 1 małe pytanko..
Ustawiłam null dla tabeli w której wyświetla mi rekordy z baz danych. Za pomocą przycisku "SELECT" wyświetla super :) . Nie powtarzają się, ale gdy dodam rekordy do tablicy, za pomocą już innego przycisku "INSERT INTO" Po czym naciskam przycisk "SELECT" wyświetli mi podwójnie dane. Pierwsze dane bez nowych rekordów, a drugie już z tym nowymi rekordami . Nie wiem za pomocą jakiej funkcji wyzerować tablice tak, aby wyświetlała jedno zapytanie, a nie jak teraz to robi. Tyle razy ile nacisnę przycisk "SELECT"
Zobrazuje to:
naciskam przycisk "SELECT" wyświetli dane z bazy danych
first name , last name , department name , v_begin , v_end
-------------------------------------------------------------------------------------------
kasia nazwisko1 IT 2010-10-11 2010-10-14
dodam teraz nowy rekord za pomocą innego przycisku "insert to" Po czym naciskam button "SELECT" i mi tak wyświetli
first name , last name , department name , v_begin , v_end
-------------------------------------------------------------------------------------------
kasia nazwisko1 IT 2010-10-11 2010-10-14
kasia nazwisko1 IT 2010-10-11 2010-10-14
ola nazwisko2 Programmer 2010-10-10 2010-10-16 // to nowy rekord który dodałam do b. d.
Mój przycisk "select" przedstawia się w ten sposób:
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String driver = "oracle.jdbc.driver.OracleDriver";
String serverName = "localhost";
String portNumber = "1521";
String sid = "XE";
String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid;
String pass = "kasia";
String user = "kasia";
String sql = "select e.first_name, e.last_name, d.name, t.v_begin, t.v_end from time_work t, employess e, departments d where e.id=t.employess_id and d.name=t.departments_name order by t.id";
try {
String[] tableColumnsName = {"first name", "last name", "department name", "v_begin", "v_end"};
DefaultTableModel aModel = (DefaultTableModel) jTable1.getModel();
aModel.setColumnIdentifiers(tableColumnsName);
Class.forName(driver);
Connection con = DriverManager.getConnection(url, user, pass);
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int colNo = rsmd.getColumnCount();
jTable1.removeColumn(null); // tu ustawiłam zerowanie, ale nie działa tak jak powinno :(
while (rs.next()) {
Object[] objects = new Object[colNo];
for (int i = 0; i < colNo; i++) {
objects[i] = rs.getObject(i + 1);
}
aModel.addRow(objects);
}
ps.close();
con.close();
jTable1.setModel(aModel);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
Próbowałam kilka razy. Pisząc tak np:
jTable1.remove... (null)
chyba wszystkie funkcje wbudowane w Netbeans, które wyświetli jak naciśnie się . (kropkę) po jTable1 . Jednak widać, że nie wszystkie rozwiązania wykonałam, jak nie działa mi nadal. Dlatego proszę uprzejmie o wskazówkę rozwiązania tego problemu..?