Zielony Smok - logo witryny

Apache Derby – server – szybki start

Wymagania wstępne:

  1. Masz utworzony folder C:/Przykłady
  2. Jeśli działasz z linii poleceń utworzyłeś ścieżkę CLASSPATH lub MODULEPATH prowadzące do plików *.jar Apache Derby
  3. Jeżeli programujesz w IDE masz dodaną bibliotekę Apache Derby do projektu

Klasy

Klasa R016.java
1    package aderby.start;
2    
3    import aderby.DerbyUtil;
4    
5    import java.sql.*;
6    
7    public class R016 {
8        private static final String baza = "c:\\Przyklady\\fourthdb";
9        private static final String properties = "create=true";
10       private static final String createTable = "CREATE TABLE " +
11               "fourthtable (id INT PRIMARY KEY, name VARCHAR (30))";
12       private static final String insertData = "INSERT INTO " +
13               "fourthtable VALUES(1, 'Mirka'),(2, 'Ula'),(3, 'Jacek')";
14       private static final String selectData1 = "SELECT * FROM " +
15               "fourthtable";
16       private static final String selectData2 = "SELECT * FROM " +
17               "fourthtable WHERE id=2";
18   
19       public static void main(String[] args) {
20           DerbyUtil.startDerbyNetworkServer(DerbyUtil.lhost,
21                   DerbyUtil.port);
22           DerbyUtil.startDerbyEngine(DerbyUtil.clidriver);
23           Connection conn = DerbyUtil.connectServerDB(baza,
24                   "localhost", "1527", properties);
25           Statement stat1 = null;
26           Statement stat2 = null;
27           Statement stat3 = null;
28           Statement stat4 = null;
29           ResultSet rs1 = null;
30           ResultSet rs2 = null;
31           try {
32               stat1 = conn.createStatement();
33               stat1.execute(createTable);
34               stat2 = conn.createStatement();
35               stat2.execute(insertData);
36               stat3 = conn.createStatement();
37               rs1 = stat3.executeQuery(selectData1);
38               while (rs1.next()) {
39                   System.out.println(rs1.getInt(1) + " | "
40                           + rs1.getString(2));
41               }
42               stat4 = conn.createStatement();
43               rs2 = stat4.executeQuery(selectData2);
44               while (rs2.next()) {
45                   System.out.println(rs2.getInt(1) + " | "
46                           + rs2.getString(2));
47               }
48           } catch (SQLException e) {
49               e.printStackTrace();
50           }
51           DerbyUtil.close(rs1);
52           DerbyUtil.close(rs2);
53           DerbyUtil.close(stat1);
54           DerbyUtil.close(stat2);
55           DerbyUtil.close(stat3);
56           DerbyUtil.close(stat4);
57           DerbyUtil.close(conn);
58           DerbyUtil.shutdownDerbyNetworkServer();
59       }
60   }
61   
    

Klasa R016.java niewiele rózni się od klasy R007.java z poprzedniego przykładu.

Ad. 16. Uruchamia Apache Derby Network Server (sieciowy) na domyślnym porcie localhosta.

Ad. 18. Łączy z bazą poprzez serwer.

Ad. 19 – 51 są identyczne jak przy uruchamianiu osadzonej bazy danych.

Ad. 52. Zatrzymuje serwer sieciowy.

Wynik

Po uruchomieniu kodu na konsoli zobaczymy wyniki identyczne jak poprzednio, a w folderze C:/Przykłady
pojawi sie folder bazy danych fourthdb.

1 | Mirka
2 | Ula
3 | Jacek
2 | Ula

Pliki do ściągnięcia

Aktualny (tworzony narastająco) plik module-info.java

Aktualny (tworzony narastająco) plik DerbyUtil.java

Pliki tworzone narastająco zastępują poprzednie pliki o tej samej nazwie i działają dla wszystkich wcześniej opublikowanych przykładów we wszystkich wpisach w projekcie. W przypadku pliku module-info.java może być potrzebne skreślenie niepotrzebnych wpisów.