Inne działy

Java przykładowe programy

 

Java przyciski przewijania w bazie danych

 

Teraz dodamy cztery przyciski do formularza. Przyciski pozwolą nam przejść do przodu poprzez zestaw rekordów, wrócić, przejść do ostatniego rekordu, i przejść do pierwszego rekordu.

Więc dodaj nowy panel do formularza. Powiększ go, a następnie dodaj przyciski na panelu.Zmień nazwy zmiennych z przyciskami na następujące:

 

btnNastępny
btnPoprzedni
btnOstatni
btnPierwszy

Zmień tekst na przyciskach na Następny, Poprzedni, Pierwszy, Ostatni. Poniżej wygląd projektu formularza:

 

 

Przejście do następnego rekordu

 

Kliknij przycisk Następny, aby stworzyć zalążek kodu procedury.

Trzeba zrobić dwie rzeczy z przyciskiem Następny: po pierwsze, sprawdzić, czy jest następny rekord, aby przejść do rekordu, a po drugie, jeśli istnieje następny rekord, wyświetlić go w polach tekstowych. Możemy stworzyć instrukcję IF. Ale to musi być opakowane w bloku try ... catch. Ta kwięc, dodaj kod do procedury przycisku Następny:

try {
if ( rs.next( ) ) {

}
else {
rs.previous( );
JOptionPane.showMessageDialog(Pracownicy.this, "Koniec pliku");
}
}
catch (SQLException err) {
JOptionPane.showMessageDialog(Pracownicy.this, err.getMessage());
}


Wyrażenie IF przesuwa ResultSet za każdym razem o jeden rekord do przodu. Jeśli nie ma następnego rekordu zostanie zwrócona wartość false. Część Else przemieszcza ResultSet z powrotem o jeden rekord. Dlatego, że kursor nie został przeniesiony do ostatniego rekordu.

W nawiasach klamrowych wyrażenia, możemy dodać kod, aby wyświetlić rekord w polach tekstowych:

int id_col = rs.getInt("ID");
String id = Integer.toString(id_kol);
String imie = rs.getString("Imie");
String nazwisko = rs.getString("Nazwisko");
String stanowisko = rs.getString("Stanowisko");

textID.setText(id);
textImie.setText(imie);
textNazwisko.setText(nazwisko);
textStanowisko.setText(stanowisko);

Jest to ten sam kod, który mamy w naszej metodzie Polonczenie. (Moglibyśmy utworzyć nową metodę, tak aby nie powielać kodu, ale będziemy tworzyć kod jak najprościej.)

Kod dla przycisku Następny powinien teraz wyglądać tak:

 

private void btnNastepnyActionPerformed(java.awt.event.ActionEvent evt) {                                            
        try{
            if(rs.next()){
                int id_kol = rs.getInt("ID");
                String id = Integer.toString(id_kol);
                String imie = rs.getString("Imie");
                String nazwisko = rs.getString("Nazwisko");
                String stanowisko = rs.getString("Stanowisko");
                
                textID.setText(id);
                textImie.setText(imie);
                textNazwisko.setText(nazwisko);
                textStanowisko.setText(stanowisko);
            } else {
                rs.previous();
                JOptionPane.showMessageDialog(Pracownicy.this, "Koniec pliku");
            }
        } catch (SQLException err) {
            JOptionPane.showMessageDialog(Pracownicy.this, err.getMessage());
        }
    }      

Po dodaniu kodu, uruchom program i przetestuj go. Klikaj na przycisk Następny i będziesz przewijać wszystkie rekordy w tabeli. Jednakże, istnieje problem.

Gdy dojdziesz do ostatniego rekordu, powinieneś zobaczyć komunikat o błędzie:

 

 

Problemem jest to, że dodaliśmy linięrs.previous . Jednak używaliśmy domyślnego typu wynikowego (ResultSet). Jak wyjaśniono w poprzednim rozdziale, ResultSet, może poruszać się tylko do przodu. Możemy użyć typu sugerowanego w komunikacie o błędzie.

Zatrzymaj program i powróć do okna kodowania. W metodzie Polonczenie zlokalizuj następujący wiersz:

stmt = con.createStatement( );

Zmień go na (kod musi znajdować się w jednej linii):

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

ResultSet będzie teraz pozwalać nam przejść do tyłu, jak i do przodu.

Uruchom ponownie program. Kliknij przycisk Następny, aż dojdziesz do ostatniego rekordu. Powinien pojawić się komunikat o błędzie z częścitry  blokutry ... catch:

W następnej lekcji dowiesz się, jak przemieszczać się do tyłu poprzez zestaw rekordów bazy danych.

 

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.