Inne działy

Java przykładowe programy

 

Java zapisanie nowego rekordu w bazie danych

 

Zanim będzie można zapisać nowy rekord, trzeba przesunąć kursor do czegoś co jest zwane InsertRow. To tworzy pusty rekord w obiekcie ResultSet. Następnie należy dodać dane do obiektu ResultSet:

 

rs.moveToInsertRow( );

rs.updateInt("ID", nowyID);
rs.updateString("Imie", imie);
rs.updateString("Nazwisko", nazwisko);
rs.updateString("Stanowisko", stanowisko);

rs.insertRow( );

Po dodaniu danych do obiektu ResultSet ostatnia linia wstawia nowy wiersz.

Jednak do zatwierdzenia wszelkich zmian w bazie danych, potrzebne jest zamknięcie obiektu Statement i ResultSet. Następnie musimy ponownie załadować wszystkie dane. Jeśli nie zrobimy tego, istnieje niebezpieczeństwo, że nowy rekord nie zostanie dodany, do obiektu ResultSet lub do bazy danych. (Wynika to z rodzaju sterownika jaki używliśmy.)

Aby zamknąć obiekty Statement i ResultSet, po prostu wykonaj nastepujące polecenia:

 

stmt.close( );
rs.close( );

Kod, który ma przeładować wszystko jest taki sam, jak kod, który napisalismy, gdy formularz jest ładowany po raz pierwszy:

stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

String sql = "SELECT * FROM Pracownicy";
rs = stmt.executeQuery(sql);

rs.next( );
int id_kol = rs.getInt("ID");
String id = Integer.toString(id_kol);
String imie2 = rs.getString("Imie");
String nazwisko2 = rs.getString("Nazwisko");
String stanowisko2 = rs.getString("Stanowisko");

textID.setText(id);
textImie.setText(imie2);
textNazwisko.setText(nazwisko2);
textStanowisko.setText(stanowisko2);

Powyżej nie robisz nic innego, jak: po prostu wybierasz wszystkie rekordy ponownie i wyświetlasz pierwszy rekord w polu tekstowym.

Oto cały kod, który zapisuje nowy rekord do bazy:

 

private void btnZapiszRekordActionPerformed(java.awt.event.ActionEvent evt) {                                                
        String imie = textImie.getText();
        String nazwisko = textNazwisko.getText();
        String stanowisko = textStanowisko.getText();
        String ID = textID.getText();
        int nowyID = Integer.parseInt(ID);
        
        try{
            
            rs.moveToInsertRow();
            
            rs.updateInt("ID", nowyID);
            rs.updateString("Imie", imie);
            rs.updateString("Nazwisko", nazwisko);
            rs.updateString("Stanowisko", stanowisko);
            
            rs.insertRow();
            
            stmt.close();
            rs.close();
            
            stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
            String sql = "SELECT * FROM Pracownik";
            rs = stmt.executeQuery(sql);
            
            rs.next();
            int id_kol = rs.getInt("ID");
            String id = Integer.toString(id_kol);
            String imie2 = rs.getString("Imie");
            String nazwisko2 = rs.getString("Nazwisko");
            String stanowisko2 = rs.getString("Stanowisko");
            
            textID.setText(id);
            textImie.setText(imie2);
            textNazwisko.setText(nazwisko2);
            textStanowisko.setText(stanowisko2);
            
            btnPierwszy.setEnabled(true);
            btnPoprzedni.setEnabled(true);
            btnNastepny.setEnabled(true);
            btnOstatni.setEnabled(true);
            btnAktualizacjaRekordu.setEnabled(true);
            btnUsunRekord.setEnabled(true);
            btnNowyRekord.setEnabled(true);
            
            btnZapiszRekord.setEnabled(false);
            btnAnulujNowyRekord.setEnabled(false);
            
        } catch (SQLException err) {
            System.out.println(err.getMessage());
        }
    }     

(Inną kwestią jest to, że kolumna ID musi być unikalna. Idealnie by było, gdyby można było napisać procedurę, aby uzyskać ostatni numer identyfikacyjny, a następnie dodać go do naszej procedury. W innych bazach danych, takich jak MySQL, jest wartość AutoIncrement, która dba o takie rzeczy. Wystarczy upewnić się, że wartość ID nie jest już stosowana wcześniej, w przeciwnym razie pojawi się komunikat o błędzie. Albo napisać procedurę, aby uzyskać unikalne ID!)

Uruchom program i przetestuj go. Teraz można zapisać nowe rekordy do bazy danych.

W następnej lekcji dowiesz się o usuwaniu rekordów.

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.