aktualizacja bazy

aktualizacja bazy
AA
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:16
0

Hej :) piszę program z urządzeniami. Zrobiłam guzik z dodawanie, usuwaniem, edycją, ale nie dziala mi zapisanie edycji :(
może ma ktoś jakieś propozycje?
Chciałam dodać, że rekord mi się zmienia, ale widzę dopiero jak ponownie uruchomię program. Nie robi mi tego na bieżąco.

Jestem początkująca więc prosiłabym też o wyrozumiałość.:)

Poniżej przesyłam fragment kodu.

Kopiuj
 
    private void zapiszButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             

        int Id = Integer.valueOf(jTextFieldId.getText());
        String Typ = TypCombo.getSelectedItem().toString();
        String Marka = jTextFieldMarka.getText();
        String Model = jTextFieldModel.getText();
        int Gwarancja = Integer.valueOf(jComboBoxGwarancja.getSelectedItem().toString());
        String RokProdukcji = jTextFieldRok.getText();
        String System = jComboBoxSystem.getSelectedItem().toString();

        String zapytanie = "Update Telefony set Id='" + Id + "',typ='" + Typ + "',Marka='" + Marka + "',Model='"
                + Model + "',Gwarancja='" + Gwarancja + "',RokProdukcji='" + RokProdukcji + "',System='" + System + "' where id='"
                + Id + "'";

        try {
            stm.executeUpdate(zapytanie);
        } catch (SQLException ex) {
            Logger.getLogger(ProjektMagazyn.class.getName()).log(Level.SEVERE, null, ex);
        }
        JOptionPane.showMessageDialog(null, "Edycja została zakończona pomyślnie");


    }     
edytowany 3x, ostatnio: Agnieszka_A
bogdans
!Wstawiaj kod w znaczniki <code=java></code>
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

W ogóle Twoim problemem jest to, że bawisz się w ręczne składanie zapytań w taki sposób.
Poczytaj o ORM, Hibernate (...).

Nie mówiąc o tym, że napisanie "program nie działa" to tak, jakbyś poszła do lekarza i jedyne co powiedziała to "swędzi".


edytowany 4x, ostatnio: Patryk27
AA
ORM pomoże rozwiązać problem? dopiero zaczynam przygodę z java więc na razie tak robię.
Patryk27
Na pewno nie zaszkodzi.
Patryk27
Choć z drugiej strony, Hibernate (https://pl.wikipedia.org/wiki/Hibernate) jest tak w sumie lepszą opcją :P
AA
chyba napisałam, że nie odświeża mi się na bieżąco?? ; ) co mam w związku z tym więcej napisać??? może doradzisz?
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

Z załączonego kodu nie wiadomo co ma się odświeżać.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
AA
hm.. no te rekordy ..w tabeli w programie.
AA
DefaultTableModel dm =(DefaultTableModel) jTable1.getModel(); dm.fireTableDataChanged(); taki zapis jak dodam też mi nie działa. nie wiem dlaczego.
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

Prowadź dyskusję w postach, nie w komentarzach. W pierwszym poście nie było słowa o JTable ani o modelu. Nadpisałaś w modelu metodę setValueAt?


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
0

nie, ale z tym też mi nie działało jak robiłam wcześniej. albo źle pisałam..

bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

W zamieszczonym kodzie nie ma żadnych zmian w modelu, dlaczego oczekujesz, że coś się zmieni w JTable?


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
0

pisałam z setValueAt ale mi nie działało. I po dłuższym czasie jak z tym walczę nie działa mi.. więc stwierdziłam, że tu napiszę. Może źle wykorzystywałam to.. nie wiem.

RO
  • Rejestracja:około 13 lat
  • Ostatnio:ponad 9 lat
  • Postów:83
0

Edycja odbywa się tylko na bazie danych, żeby było widoczne w widoku aplikacji (np. tabeli) musisz ją jeszcze odświeżać, stąd ponowne uruchomienie programu daje oczekiwany efekt. W jaki sposób odświeżasz widok po dodaniu rekordu oraz usunięciu?


Jestem początkujący.
0
Kopiuj
 jTable1.setValueAt(Typ, (Id-1), 1);//typ
        jTable1.setValueAt(Marka, (Id-1), 2);//marka
        jTable1.setValueAt(Model, (Id-1), 3);
        jTable1.setValueAt(Gwarancja, (Id-1), 4);
        jTable1.setValueAt(RokProdukcji, (Id-1), 5);
        jTable1.setValueAt(System, (Id-1), 6);
RO
Trochę mało tego kodu i mało konkretny - kiedy wywołujesz ten kod ? To jest w jakieś metodzie i się "odpala na zawołanie" jak wykonujesz zmiany w bazie danych ?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.