Inne działy

Java przykładowe programy

 

Java dodanie nowego rekordu w bazie danych

 

Mamy trzy przyciski, które odnoszą się do nowych rekordów: „Nowy rekord”, „Zapisz nowy rekord” i „Anuluj nowy rekord”. Przycisk „Nowy rekord” wyczyści tylko pola tekstowe aby przygotować je do wpisania nowych danych, które mają być wprowadzone. Możemy również wyłączyć niektóre inne przyciski, w tym przycisk „Nowy rekord”. Kolejną rzeczą, którą możemy zrobić, to zapamiętanie, rekordu, który jest obecnie załadowany. Jeśli użytkownik zmieni swój zamiar, możemy włączyć wszystkie przyciski ponownie, klikając przycisk „Anuluj nowy rekord”. Kliknięcie przycisku „Zapisz nowy rekord” spowoduje zapisanie danych do bazy danych.

Jeśli to wszystko jest trochę niezrozumiałe, wykonaj następujące czynności. Kliknij przycisk „Zapisz nowy rekord”, aby go wybrać. W obszarze Właściwości po prawej stronie, znajdź właściwość Enabled:

 

 

Usuń zaznaczenie w polu wyboru po prawej stronie opcji enabled. Przycisk „Zapisz nowy rekord” zostanie wyłączony. Zrób to samo dla przycisku „Anuluj nowy rekord”. Przycisk „Anuluj nowy rekord” zostanie wyłączony. Po wczytaniu formularza, będzie to wyglądać tak:

 

 

Nawet jeśli istniał kod dla tych dwóch przycisków, nic się nie stanie, jeśli klikniesz na jeden z nich.

Gdy klikniemy przycisk „Nowy rekord” możemy wyłączyć następujące przyciski:

 

Pierwszy
Poprzedni
Następny
Ostatni
Aktualizacja rekordu
Usuń rekord
Nowy  rekord

Przyciski Zapisz i Anuluj, mogą być włączone. Jeśli użytkownik kliknie przycisk Anuluj, można ponownie przełączyć przyciski.

Kliknij dwukrotnie przycisk „Nowy rekord” aby utworzyć kod procedury. Dodaj następujące linie kodu:

btnPierwszy.setEnabled( false );
btnPoprzedni.setEnabled( 
false ) ;
btnNastepny.setEnabled( 
false );
btnOstatni.setEnabled( 
false );
btnAktualizacjaRekordu.setEnabled( 
false );
btnUsunRekord.setEnabled( 
false );
btnNowyRekord.setEnabled( 
false );

btnZapiszRekord.setEnabled( true );
btnAnulujNowyRekord.setEnabled( 
true );

Więc siedem przycisków zostało wyłączonych za pomocą metody setEnabled. Dwa przyciski się włączone.

Możemy to zrobić na odwrót dla przycisku Anuluj. Przełącz się do widoku projektu. Kliknij dwukrotnie przycisk „Anuluj nowy rekord” aby dodać kod procedury. Dodaj następujące linie:

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 );

Uruchom program i przetestuj go. Kliknij przycisk „Nowy rekord” a forma będzie wyglądać tak:

 

 

Kliknij przycisk „Anuluj nowy rekord” a forma będzie wyglądać tak:

 

 

Inną rzeczą, którą musisz zrobić, to zapamietać, który wiersz jest aktualnie załadowany. Innymi słowy, numer wiersza, który jest obecnie wyświetlony w polach tekstowych. Musimy to zrobić, ponieważ pola tekstowe zostaną wyczyszczone. Jeśli zostanie kliknięty przycisk Anuluj, a następnie możemy odświeżyć dane, które zostały usunięte.

Dodaj następującą zmienną Integer w górnej części kodu, tuż poniżej linii z deklaracjami zmiennych połączenia, Statement i ResultSet:

int aktRzad = 0;

Kod powinien wyglądać tak:

 

public class Pracownicy extends javax.swing.JFrame {
        
        Connection con;
        Statement stmt;
        ResultSet rs;
        int aktRzad = 0;
        

        /**
         * Creates new form Pracownicy
         */
        public Pracownicy() {
            initComponents();
            Poloczenie();
        }

Teraz wróć do kodu przycisku Nowy rekord.

Aby uzyskać dane, który rząd obecnie wskazuje Cursor jest metoda zwana getRow. To pozwala przechowywać numer wiersza, w którym Cursor znajduje się obecnie:

 

aktRzad = rs.getRow( );

Będziemy korzystać z tego numeru wiersza w kodzie przycisku „Anuluj nowy rekord”.

Jedyne co musimy zrobić w kodzie przycisku „Nowy rekord” jest wyczyszczenie pól tekstowych. To jest bardzo proste:

 

textImie.setText("");
textNazwisko.setText("");
textStanowisko.setText("");
textID.setText("");

Po prostu musimy ustawić właściwości text na pusty ciąg.

Ponieważ używaliśmy metodę obiektu ResultSet, musimy wszystko umieścić w bloku try ... catch. Oto jak powinien wyglądać kod dla przycisku „Nowy rekord”:

 

private void btnNowyRekordActionPerformed(java.awt.event.ActionEvent evt) {                                              
        
        try{
            
            aktRzad = rs.getRow();
            
            textImie.setText("");
            textNazwisko.setText("");
            textStanowisko.setText("");
            textID.setText("");
            
            btnPierwszy.setEnabled(false);
            btnPoprzedni.setEnabled(false);
            btnNastepny.setEnabled(false);
            btnOstatni.setEnabled(false);
            btnAktualizacjaRekordu.setEnabled(false);
            btnUsunRekord.setEnabled(false);
            btnNowyRekord.setEnabled(false);
            btnZapiszRekord.setEnabled(true);
            btnAnulujNowyRekord.setEnabled(true);
        } catch (SQLException err){
            System.out.println(err.getMessage());
        }        
    }

Dla przycisku „Anuluj nowy rekord”, musimy przypisać wiersz, który został wcześniej wyświetlony i umieścić dane z powrotem w polach tekstowych.

Aby przesunąć kursor z powrotem do rzędu, który został wcześniej wyświetlony, możemy użyć metody bezwzględnej:

rs.absolute( aktRzad );

Metoda bezwzględna przesuwa kursor do stałej pozycji w obiekcie ResultSet. Chcemy przypisać jej wartość, zapisaną w zmiennej aktRzad.

Teraz, gdy kursor wskazuje na prawidłowy wiersz, możemy załadować dane do pól tekstowych:

textImie.setText( rs.getString("Imie") );
textNazwisko.setText( rs.getString("Nazwisko") );
textStanowisko.setText( rs.getString("Stanowisko") );
textID.setText( Integer.toString( rs.getInt("ID" )) );

Umieśćmy to wszystko w bloku try ... catch co nam daje następujący kod:

 

private void btnAnulujNowyRekordActionPerformed(java.awt.event.ActionEvent evt) {                                                    
        
        try{
            rs.absolute(aktRzad);
            textImie.setText(rs.getString("Imie"));
            textNazwisko.setText(rs.getString("Nazwisko"));
            textStanowisko.setText(rs.getString("Stanowisko"));
            textID.setText(Integer.toString(rs.getInt("ID")));
            
            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());
        }
        
    }        

Po zakończeniu dodawania kodu dla przycisku Nowy i Anuluj, uruchom program i go wypróbuj. Przed kliknięciem przycisku „Nowy rekord”, formularz będzie wyglądać tak:

 

 

Kliknij przycisk „Nowy rekord” aby zobaczyć, że pola tekstowe zostały wyczyszczone:

 

 

Kliknji przycisk „Anuluj nowy rekord” aby przeładować dane:

 

 

Teraz, gdy przyciski „Nowy rekord” i „Anuluj nowy rekord” zostały utworzone, możemy iść dalej i zapisać nowe dane wpisane do pól tekstowych.

 

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.