Akce! Dobij si body, napiš nám do zpráv "Přes léto se to naučím!" a dobijeme ti ještě navíc 50% z této částky! Sleva na výuku platí do 22.6.2018.

Lekce 7 - Derby DB - Připojení k databázi LAN/WAN

Java Databáze Apache Derby Derby DB - Připojení k databázi LAN/WAN

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

Tato lekce bude velmi odpočinková. Prakticky použijeme projekt z předchozího příkladu, jen jej mírně upravíme. Danou databázi (databaze04), kterou jsme vytvořili v minulém příkladu, zkopíruji a přenesu na jiné PC v síti. Takže databáze bude na PC s IPv4 192.168.123.9 a klient, který se bude připojovat, bude na IPv4 192.168.123.5.

Připojení přes síť k databázi je naprosto jednoduché. Databázi je pouze nutné spustit s nastavením aby akceptovala sítové připojení, protože v defaultním nastavení je tato komunikace vypnutá. A pak jen v klientovi upravit cestu k připojení tak, že místo localhost zadáme IP adresu v dané verzi (IPv4, IPv6), např.132.123.55.68 nebo přímo doménu, např. priklad.domena.cz. Zde si předvedeme standardní spuštění pro localhost.

Start Derby DB po síti

Pokud provedete standardní spuštění a zkusíte se připojit na danou IP s defaultním portem, klient se vám přes LAN nespojí. Je nutné provést spuštění s parametry, které vám přístup umožní přes LAN (WAN). Zde na dalším screenshotu lze vidět jak budeme derby server spouštět. Doporučuji spouštět jako administrator + správce, předejdeme tím problémům ohledně práv přístupu, pokud používáte systém práv na PC. Server spustíme příkazem startNetworkServer -h 192.168.123.9 -p 2222, kde přepínač -h definuje IP adresu sítové karty umístěnou na PC, kde poběží DerbyServer a -p definuje port, kde bude Derby Server naslouchat. Protože je databaze04 obsažena v celém adresáři, je možné ji přenášet mezi DerbyServery pouhým kopírováním. Taktéž, pokud chcete danou databázi smazat, stačí daný adresář smazat a DerbyServer ani nebude tušit, že mu nějaká databáze chybí.

Síťový start databáze DerbyDb

Co se týče WAN (internet), tak zde je samozřejmě princip úplně identický, že nestojí ani za zmínku. Prostě za IP dosadíte pouze veřejnou (public) IP adresu vašeho PC, pokud je viditelný z internetu. Případně pokud máte NAT, je nutné v routeru nastavit přesměrování na port a IP v LAN. Za IP DerbyServeru dáte IP v LAN, a klient se bude připojovat na adresu routeru, jenž poté pouze provede automatické přesměrování komunikace.

Příklad na připojení přes LAN

Vytvoříme testovací příklad v Java SE a projekt v IDE. Přidáme opět externí knihovny z(..\lib\..) do našeho projektu do CLASSPATH.

  • derby.jar
  • derbyclient.jar
  • derbytools.jar
  • derbyoptional­tools.jar

Jak jsem již výše uvedl, jedná se o téměř identický kód z předchozího příkladu, kdy jediná zásadní úprava bude v připojení. Jak vidíte, určili jsme IP adresu a samozřejmě port, na kterém Derby Server naslouchá. jdbc:derby://192.168.123.9:2222/databaze04;user=Uzivatel4;password=Heslo4;

Nastavení klienta Derby Db

Samozřejmě, pokud budete používat tento kód nezapomeňte mou IPv4 změnit za svou IP.

package net;
import java.sql.*;
public class ProjektLAN {
        private static Connection connect = null;
        private static Statement statement = null;
        private static ResultSet odpoved = null;

        static {
                try {
                        Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
                } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
                        System.out.println("Problem s nactenim driveru - nutne pridat do CLASSPATH");
                }
        }

        private static void pripojeniDatabazeLAN() {
                try {
                        connect = DriverManager.getConnection("jdbc:derby://192.168.123.9:2222/databaze04;user=Uzivatel4;password=Heslo4;");
                        System.out.println("Podarilo se pripojit k databazi04");
                } catch (Exception e) {
                        System.err.println("Nepodarilo se pripojit k databazi04");
                        if (connect == null) {
                                System.exit(1);
                        }
                }
        }

        private static void vypisemeData() {
                try {
                        statement = connect.createStatement();
                        odpoved = statement.executeQuery("SELECT * FROM Employee ORDER BY id");
                        System.out.print("Podarilo se ziskat data :");
                        while (odpoved.next()) {
                                System.out.print("\nJmeno :" + odpoved.getString(2));
                                System.out.print("\tPrijmeni :" + odpoved.getString(3));
                                System.out.print("\tMail:" + odpoved.getString(4));
                        }
                } catch (SQLException e) {
                        System.out.println("Nepovedlo se ziskat data :");
                        e.printStackTrace();
                }
        }

        private static void odpojimeDatabazi() {
                try {
                        if (statement != null) {
                        statement.close();
                }
                if (connect != null) {
                        connect.close();
                }
                System.out.println("\nPodarilo se odpojit od databaze");
                } catch (SQLException e) {
                        e.printStackTrace();
                }
        }

        public static void main(String[] args) {
                System.out.println("Start Programu");
                pripojeniDatabazeLAN();
                vypisemeData();
                odpojimeDatabazi();
                System.out.println("Konec Programu");
        }
}

Zde je krásně vidět výstup spuštěného programu do konzole. Kód je jednoduchý. Nejdříve se připojíme, pak provedeme výpis vybrané tabulky a nakonec se odhlásíme.

Spuštěný klient Derby Db

Spuštění jsme provedli z IDE, nicméně nic nám nebrání provést export do runnable *.jar, a spustit projekt z příkazového řádku.

Výpis Derby Db

Příště si rozebereme chování embedded (vestavěné) databáze.


 

Stáhnout

Staženo 36x (4.33 kB)

 

 

Článek pro vás napsal Robert Michalovič
Avatar
Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!
Programuji převážně v Javě SE,EE a trochu nativním C a CUDA. více viz.https://cz.linkedin.com/in/robert-michalovi%C4%8D-8a9b9498
Miniatura
Všechny články v sekci
DerbyDb
Aktivity (3)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!