poniedziałek, 24 września 2018

SQLite - Java


SQLite - Java

W tym rozdziale dowiesz się, jak korzystać z SQLite w programach Java.
Instalacja
Zanim zaczniesz używać SQLite w naszych programach Java, musisz upewnić się, że masz zainstalowany sterownik SQLite JDBC i Javę na komputerze. Możesz sprawdzić samouczek w języku Java dla instalacji Java na swoim komputerze. Teraz sprawdźmy, jak skonfigurować sterownik SQLite JDBC.
·      Pobierz najnowszą wersję sqlite-jdbc- (VERSION) .jar z repozytorium sqlite-jdbc .
·      Dodaj pobrany plik jar sqlite-jdbc- (VERSION) .jar w ścieżce klasy lub użyj go razem z opcją -classpath, jak wyjaśniono w poniższych przykładach.
Poniższa sekcja zakłada, że ​​masz niewielką wiedzę na temat koncepcji Java JDBC. Jeśli tego nie zrobisz, sugerujemy, aby spędzić pół godziny z Samouczkiem JDBC, aby wygodnie zrozumieć wyjaśnione poniżej pojęcia.
Swoje przykłady wykonałem w systemie Windows za pomocą środowiska programistycznego Eclipse - Oxygen.3a Release (4.7.3a). W tym celu utworzyłem nowy projekt pod nazwą „testSQLite” aby dodać do projektu sterownik JDBC należy kliknąć na nazwie projektu prawym klawiszem myszki i wybrać opcję „Bulid Path” a następnie „Configure Buid Path” tak jak na poniższym zrzucie ekranu.



Rysunek 1   testsqlite_bildpath.png

Następnie w nowym oknie dialogowym należy dodać sterownik JDBC jak na poniższym zrzucie wybierając opcję „Add External JARs…” a następnie zatwierdzamy przyciskiem „Apply and Close”



Rysunek 2  tesrsqlite_bildpath1.png

Połączenie z bazą danych

Poniższe programy Java pokazują, jak połączyć się z istniejącą bazą danych. Jeśli baza danych nie istnieje, to zostanie utworzona i wreszcie zostanie zwrócony obiekt bazy danych.
package testSQLite;

import java.sql.*;


public class testSQLite {

        public static void main(String[] args) {
                
                 Connection c = null;
             
              try {
                 Class.forName("org.sqlite.JDBC");
                 c = DriverManager.getConnection("jdbc:sqlite:test.db");
              } catch ( Exception e ) {
                 System.err.println( e.getClass().getName() + ": " + e.getMessage() );
                 System.exit(0);
              }
              System.out.println("Otwarto bazę danych pomyślnie");

        }

}
A teraz możemy skompilować i uruchomić powyższy program, który  utworzy naszą bazę danych test.db w bieżącym katalogu. Możesz zmienić ścieżkę zgodnie z wymaganiami. Zakładamy, że aktualna wersja sterownika JDBC sqlite-jdbc-3.23.1.jar jest dostępna w bieżącej ścieżce.
$javac SQLiteJDBC.java
$java -classpath ".:sqlite-jdbc-3.23.1.jar" testSQLite
Otwarto bazę danych pomyślnie
Jeśli używasz komputera z systemem Windows, możesz skompilować i uruchomić swój kod w następujący sposób:
$javac SQLiteJDBC.java
$java -classpath ".;sqlite-jdbc-3.23.1.jar" testSQLite
Otwarto bazę danych pomyślnie
My wszystkie te czynności wykonaliśmy w środowisku Eclipse

Utwórzenie tabelę

Poniższy program Java zostanie użyty do utworzenia tabeli we wcześniej utworzonej bazie danych.
package testSQLite;

import java.sql.*;


public class testSQLite {

        public static void main(String[] args) {
                
              Connection c = null;
              Statement stmt = null;
             
              try {
                 Class.forName("org.sqlite.JDBC");
                 c = DriverManager.getConnection("jdbc:sqlite:test.db");
                 System.out.println("Otwarto bazę danych pomyślnie");

                 stmt = c.createStatement();
                 String sql = "CREATE TABLE PRACOWNIK " +
                                "(ID INT PRIMARY KEY     NOT NULL," +
                                " NAZWISKO           TEXT    NOT NULL, " +
                                " WIEK            INT     NOT NULL, " +
                                " ADRES        CHAR(50), " +
                                " PENSJA         REAL)";
                 stmt.executeUpdate(sql);
                 stmt.close();
                 c.close();
              } catch ( Exception e ) {
                 System.err.println( e.getClass().getName() + ": " + e.getMessage() );
                 System.exit(0);
              }
              System.out.println("Tabela utworzona pomyślnie");

        }

}
Kiedy powyższy program zostanie skompilowany i wykonany, utworzy tabelę PRACOWNIK w bazie danych test.db.




Wstawianie danych

Poniższy program Java pokazuje, jak tworzyć rekordy w tabeli PRACOWNIK utworzonej w powyższym przykładzie.
package testSQLite;

import java.sql.*;


public class testSQLite {

        public static void main(String[] args) {
                
                 Connection c = null;
              Statement stmt = null;
             
              try {
                 Class.forName("org.sqlite.JDBC");
                 c = DriverManager.getConnection("jdbc:sqlite:test.db");
                 c.setAutoCommit(false);
                 System.out.println("Otwarto bazę danych pomyślnie ");

                 stmt = c.createStatement();
                 String sql = "INSERT INTO PRACOWNIK (ID,NAZWISKO,WIEK,ADRES,PENSJA) " +
                                "VALUES (1, 'Paweł', 32, 'Warszawa', 2000.00 );";
                 stmt.executeUpdate(sql);

                 sql = "INSERT INTO PRACOWNIK (ID,NAZWISKO,WIEK,ADRES,PENSJA) " +
                          "VALUES (2, 'Adam', 25, 'Wołomin', 1500.00 );";
                 stmt.executeUpdate(sql);

                 sql = "INSERT INTO PRACOWNIK (ID,NAZWISKO,WIEK,ADRES,PENSJA) " +
                          "VALUES (3, 'Tadeusz', 23, 'Ząbki', 2000.00 );";
                 stmt.executeUpdate(sql);

                 sql = "INSERT INTO PRACOWNIK (ID,NAZWISKO,WIEK,ADRES,PENSJA) " +
                          "VALUES (4, 'Marek', 25, 'Tarchomin', 6500.00 );";
                 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("Rekordy zostały utworzone pomyślnie");


        }

}
Gdy powyższy program zostanie skompilowany i wykonany, utworzy podane rekordy w tabeli PRACOWNIK i wyświetli następujące dwie linie -
Otwarto bazę danych pomyślnie
Rekordy zostały utworzone pomyślnie

Wyświetlanie rekordów

Poniższy program Java pokazuje, jak pobierać i wyświetlać rekordy z tabeli PRACOWNIK utworzonej w powyższym przykładzie.
package testSQLite;

import java.sql.*;

public class WyswietlRekord {

        public static void main(String[] args) {
                
                 Connection c = null;
                    Statement stmt = null;
                    try {
                       Class.forName("org.sqlite.JDBC");
                       c = DriverManager.getConnection("jdbc:sqlite:test.db");
                       c.setAutoCommit(false);
                       System.out.println("Otwarto bazę danych pomyślnie");

                       stmt = c.createStatement();
                       ResultSet rs = stmt.executeQuery( "SELECT * FROM PRACOWNIK;" );
                      
                       while ( rs.next() ) {
                          int id = rs.getInt("id");
                          String  nazwisko = rs.getString("nazwisko");
                          int wiek  = rs.getInt("wiek");
                          String  adres = rs.getString("adres");
                          float pensja = rs.getFloat("pensja");
                         
                          System.out.println( "id = " + id );
                          System.out.println( "nazwisko = " + nazwisko );
                          System.out.println( "wiek = " + wiek );
                          System.out.println( "adres = " + adres );
                          System.out.println( "pensja = " + pensja );
                          System.out.println();
                       }
                       rs.close();
                       stmt.close();
                       c.close();
                    } catch ( Exception e ) {
                       System.err.println( e.getClass().getName() + ": " + e.getMessage() );
                       System.exit(0);
                    }
                    System.out.println("Operacja została wykonana pomyślnie");

                
        }

}
Gdy powyższy program zostanie skompilowany i wykonany, wygeneruje następujący wynik.
Otwarto bazę danych pomyślnie
id = 1
nazwisko = Paweł
wiek = 32
adres = Warszawa
pensja = 2000.0

id = 2
nazwisko = Adam
wiek = 25
adres = Wołomin
pensja = 1500.0

id = 3
nazwisko = Tadeusz
wiek = 23
adres = Ząbki
pensja = 2000.0

id = 4
nazwisko = Marek
wiek = 25
adres = Tarchomin
pensja = 6500.0

Operacja została wykonana pomyślnie

OPERACJA UPDATE

Poniższy kod Java pokazuje, jak użyć instrukcji UPDATE, aby zaktualizować dowolny rekord, a następnie pobrać i wyświetlić zaktualizowane rekordy z tabeli PRACOWNIK.
import java.sql.*;

public class SQLiteJDBC {

  public static void main( String args[] ) {
 
   Connection c = null;
   Statement stmt = null;
  
   try {
      Class.forName("org.sqlite.JDBC");
      c = DriverManager.getConnection("jdbc:sqlite:test.db");
      c.setAutoCommit(false);
      System.out.println("Otwarto bazę danych pomyślnie");

      stmt = c.createStatement();
      String sql = "UPDATE PRACOWNIK set PENSJA = 2500.00 where ID=1;";
      stmt.executeUpdate(sql);
      c.commit();

      ResultSet rs = stmt.executeQuery( "SELECT * FROM PRACOWNIK;" );
     
      while ( rs.next() ) {
         int id = rs.getInt("id");
         String  nazwisko = rs.getString("nazwisko");
         int wiek  = rs.getInt("wiek");
         String  adres = rs.getString("adres");
         float pensja = rs.getFloat("pensja");
        
         System.out.println( "id = " + id );
         System.out.println( "nazwisko = " + nazwisko );
         System.out.println( "wiek = " + wiek );
         System.out.println( "adres = " + adres );
         System.out.println( "pensja = " + pensja );
         System.out.println();
      }
      rs.close();
      stmt.close();
      c.close();
   } catch ( Exception e ) {
      System.err.println( e.getClass().getName() + ": " + e.getMessage() );
      System.exit(0);
   }
    System.out.println("Operacja została wykonana pomyślnie");
   }
}
Gdy powyższy program zostanie skompilowany i wykonany, wygeneruje następujący wynik.
Otwarto bazę danych pomyślnie
id = 1
nazwisko = Paweł
wiek = 32
adres = Warszawa
pensja = 2500.0

id = 2
nazwisko = Adam
wiek = 25
adres = Wołomin
pensja = 1500.0

id = 3
nazwisko = Tadeusz
wiek = 23
adres = Ząbki
pensja = 2000.0

id = 4
nazwisko = Marek
wiek = 25
adres = Tarchomin
pensja = 6500.0

Operacja została wykonana pomyślnie

Usuwanie rekordów

Poniższy kod Java pokazuje, jak używać instrukcji DELETE, aby usunąć dowolny rekord, a następnie pobrać i wyświetlić pozostałe rekordy z naszej tabeli PRACOWNIK.
package testSQLite;

import java.sql.*;

public class UsuwanieRekordów {

        public static void main(String[] args) {
                
              Connection c = null;
              Statement stmt = null;
             
              try {
                 Class.forName("org.sqlite.JDBC");
                 c = DriverManager.getConnection("jdbc:sqlite:test.db");
                 c.setAutoCommit(false);
                 System.out.println("Otwarto bazę danych pomyślnie");

                 stmt = c.createStatement();
                 String sql = "DELETE from PRACOWNIK where ID=2;";
                 stmt.executeUpdate(sql);
                 c.commit();

                 ResultSet rs = stmt.executeQuery( "SELECT * FROM PRACOWNIK;" );
                
                 while ( rs.next() ) {
                 int id = rs.getInt("id");
                 String  nazwisko = rs.getString("nazwisko");
                 int wiek  = rs.getInt("wiek");
                 String  adres = rs.getString("adres");
                 float pensja = rs.getFloat("pensja");
                
                 System.out.println( "ID = " + id );
                 System.out.println( "nazwisko = " + nazwisko );
                 System.out.println( "wiek = " + wiek );
                 System.out.println( "adres = " + adres );
                 System.out.println( "pensja = " + pensja );
                 System.out.println();
              }
              rs.close();
              stmt.close();
              c.close();
              } catch ( Exception e ) {
                 System.err.println( e.getClass().getName() + ": " + e.getMessage() );
                 System.exit(0);
              }
              System.out.println("Operacja została wykonana pomyślnie");

                
        }

}
Gdy powyższy program zostanie skompilowany i wykonany, wygeneruje następujący wynik.
Otwarto bazę danych pomyślnie
ID = 1
nazwisko = Paweł
wiek = 32
adres = Warszawa
pensja = 2500.0

ID = 3
nazwisko = Tadeusz
wiek = 23
adres = Ząbki
pensja = 2000.0

ID = 4
nazwisko = Marek
wiek = 25
adres = Tarchomin
pensja = 6500.0

Operacja została wykonana pomyślnie






Brak komentarzy:

Prześlij komentarz