Chirurgia cranio-cerebrală minim invazivă
Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne. Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale. www.neurohope.ro |
Functie de update date din tabel
Last Updated: Jun 08 2018 07:35, Started by
raduaxel
, Jun 06 2018 21:10
·
0
#1
Posted 06 June 2018 - 21:10
Salut.
Lucrez la o aplicatie de gestiune a bazei de date. Pe scurt: Am facut o baza de date in postgresql si in eclipse o interfata cu windowbuilder cu un tabel care afiseaza toate datele din baza si butoane de update/select/delete etc. Nu imi dau seama insa cum as putea face ca atunci cand introduc sau modific ceva folosind butoanele, sa se actualizeze automat tabelul, fara sa deschid inca o data aplicatia. Am incercat sa scriu o functie de update si sa o apelez in partea de actiune a fiecarui buton in parte. Nu a mers. Am incercat cu repaint(). Tot n-am reusit. Exista o functie de genul 'getText()' care poate face asta? Exemplu actiune buton extras din codul sursa: Adauga.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { Connection c = null; Statement stmt = null; try { Class.forName("org.postgresql.Driver"); c = DriverManager .getConnection("jdbc:postgresql://localhost:5432/Servis", "postgres", "1"); c.setAutoCommit(false); System.out.println("Se deschide baza de date..."); stmt = c.createStatement(); String sql = "INSERT INTO clienti (id,nume,prenume,telefon,produs,stare_p) " + "VALUES ('"+camp_id.getText()+"', '"+camp_nume.getText()+"', '"+camp_prenume.getText()+"', '"+camp_telefon.getText()+"', '"+camp_p.getText()+"' , 'In asteptare' );"; stmt.executeUpdate(sql); stmt.close(); c.commit(); c.close(); } catch (Exception e) { System.err.println( e.getClass().getName()+": "+ e.getMessage() ); System.exit(0); } System.out.println("A fost inregistrat clientul."); } }); |
#2
Posted 06 June 2018 - 23:21
La inceput cum iti apar datele acolo?
Vezi ce metoda apelezi pentru asta si, dupa ce se apasa un buton, mai adu odata datele. Poti, de asemenea, sa identifici randurile modificate si sa le actualizezi doar in tabelul respectiv, fara a mai interoga inca o data baza si a aduce tot. Ce ai pus mai sus e un fel de: "Am probleme cu motorul, se aude ceva ciudat. Am pus o poza cu usa." |
#3
Posted 06 June 2018 - 23:54
Connection c = null; Statement stmt = null; final DefaultTableModel listTableModel = new DefaultTableModel(rowData, columnNames); try { Class.forName("org.postgresql.Driver"); c = DriverManager.getConnection("jdbc:postgresql://localhost:5432/Servis", "postgres", "1"); c.setAutoCommit(false); System.out.println("Baza de date deschisa!"); stmt = c.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM clienti;"); while (rs.next()) { int id = rs.getInt("id"); String nume = rs.getString("nume"); String prenume = rs.getString("prenume"); String telefon = rs.getString("telefon"); String produs = rs.getString("produs"); String stare_p = rs.getString("stare_p"); listTableModel.addRow(new Object[] { id, nume, prenume, telefon, produs, stare_p }); } rs.close(); stmt.close(); c.close(); } catch (Exception e) { System.err.println(e.getClass().getName() + ": " + e.getMessage()); System.exit(0); } System.out.println("Operatiune efectuata!"); Partea asta imi afiseaza datele in tabel. Am incercat sa fac inca un buton avand ca actiune aceeasi parte. Nu se intampla nimic :/ . |
#4
Posted 07 June 2018 - 01:37
Curat este sa faci o arhitectura in care pui in centru modelul de business, si implementezi observer pattern pentru toate entitatile.
GUI-ul il faci doar un plug-in care se inregistreaza la pornirea aplicatiei ca "interesat de evenimentele emise de domain model", si care va primi update-uri. Adica pe invers fata de ce faci momentan. E putin mai mult de lucru la inceput, dar apoi e mult mai lejer. Iar baza de date e si ea tot un plug-in. Vezi si RxJava pentru detalii. Dar tare imi e ca nu vrei sa faci treaba calumea, ci doar sa mazgalesti niste cod acolo. |
#5
Posted 08 June 2018 - 07:35
Initiator, iti trebuie un event de tip timer/counter care la un interval prestabilit (0.5 -> 1 s) sa reciteasca intr-un vector toate valorile curente din textboxuri, si apoi folosesti valorile din vector in de .getText() ala.
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users