4. díl - Derby DB - Možnosti připojení

Java Databáze Apache Derby Derby DB - Možnosti připojení

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

V minulé lekci, Derby DB - Připojení k databázi, jsme se k databázi Derby z Javy připojili. Dnešní tutoriál bude takový odpočinkový. Bude pouze předvádět různé možnosti připojení.

Spuštění databázového serveru Derby DB

Spouštění databázového serveru je samozřejmě možné i programově přes Javu. Cestu si samozřejmě musíte nastavit podle svého umístění databáze. Toto je jedno z možných řešení. Lze to samozřejmě i s parametry pro jiný port či parametrem pro připojení ze sítě, apod.

Pozn.: Nejedná se o spuštění embedded (vestavěné) DB

...
/** Zde provedeme spusteni databaze **/
try {
        Runtime.getRuntime().exec("C:\\Program Files\\JavaJDK\\db\\bin\\startNetworkServer.bat");
        System.out.println("Databaze se podarila spustit");
} catch (IOException e) {
        System.out.println("Databaze se nepodarila spustit");
        e.printStackTrace();
}
...
/** Zde provedeme vypnuti databaze  **/
try {
        Runtime.getRuntime().exec("C:\\Program Files\\JavaJDK\\db\\bin\\stopNetworkServer.bat");
        System.out.println("Databaze se podarila ukoncit");
} catch (IOException e) {
        System.out.println("Databaze se nepodarila ukoncit");
        e.printStackTrace();
}
...

Spojení s použitím java.util.Pro­perties

Pokud potřebujeme provést více spojení s různými parametry, není vhodné spojení navazovat přes jeden String. V této situace využijeme objekt Properties. Ten nám umožní definovat různé spojení podle aktuální potřeby v různých částech programu.

...
private static void pripojeniKDatabazi() {
        Properties props = new Properties();
        props.setProperty("create","true");
        props.setProperty("user","Uzivatel2");
        props.setProperty("password","Heslo2");
        try {
                connect = DriverManager.getConnection("jdbc:derby://localhost:1527/databaze02",props);
                System.out.println("Podarilo se pripojit");
        } catch (Exception e) {
                System.err.println("Nepodarilo se pripojit");
        }
}
...

Spuštění Derby DB programově na PC v rámci připojení k databázi

Následující způsob spuštění se doporučuje pro vývojáře, kteří mají databázi a samozřejmě i DerbyDB k dispozici na svém PC. V tomto případě není nutné spouštět Derby databázi, protože se spustí sama v rámci pokusu o připojení.

Pozn.: Nejedná se o spuštění embedded (vestavěné) DB.

...
private static void pripojeniKDatabazi() {
        Properties props = new Properties();
        props.setProperty("create","true");
        props.setProperty("user","Uzivatel2");
        props.setProperty("databaseName","databaze02");
        props.setProperty("password","Heslo2");
        try {
                connect = DriverManager.getConnection("jdbc:derby:",props);
                System.out.println("Podarilo se pripojit");
        } catch (Exception e) {
                System.err.println("Nepodarilo se pripojit");
        }
}
...

Příklad spojení s Properties bez manuálního spuštění databáze

Vytvoříme si projekt projekt v Eclipse. V menu zvolíme File -> New -> Java Project. Pojmenujeme projekt a nastavíme JRE Java8 (příp. 9). Dále přidáme externí knihovny (libraries) do našeho projektu, přesněji do CLASSPATH. No a nakonec si vytvoříme spouštěcí třídu se spouštěcí metodou na které si to otestujeme.

Projekt pro Derby DB v Eclipse

Zde je zdrojový kód projektu. Program je skutečně triviální. Ve statickém bloku si vytvoříme test na přístup k objektům z libraries vložených do CLASSPATH. Dále lze v programu vidět dvě metody, z nichž jedna se připojuje a druhá odpojuje od databáze.

package pripojeni;
import java.sql.*;
public class PripojeniDERBY {
        private static Connection connect = 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 pripojeniKDatabazi() {
                Properties props = new Properties();
                props.setProperty("create","true");
                props.setProperty("user","Uzivatel2");
                props.setProperty("databaseName","databaze02");
                props.setProperty("password","Heslo2");
                try {
                        connect = DriverManager.getConnection("jdbc:derby:",props);
                        System.out.println("Podarilo se pripojit");
                } catch (Exception e) {
                        System.err.println("Nepodarilo se pripojit");
                }
        }

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

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

Jak vidíte, projekt se spustí, ale nastane nepříjemnost. Databáze se nám vytvoří v našem projektu, což není příliš vhodné.

Spuštění Derby Db projektu v Eclipse

Proto provedeme úpravy zdrojového kódu. Databázi si vytvoříme tak, že si přímo specifikujeme adresář i jméno databáze.

private static void pripojeniKDatabazi() {
        Properties props = new Properties();
        props.setProperty("create","true");
        props.setProperty("user","Uzivatel2");
        props.setProperty("password","Heslo2");
        try {
                connect = DriverManager.getConnection("jdbc:derby:C:/Program Files/JavaJDK/db/bin/databaze02",props);
                System.out.println("Podarilo se pripojit");
        } catch (Exception e) {
                System.err.println("Nepodarilo se pripojit");
        }
}

A zde je již všechno v pořádku. databaze02 vznikla na cestě C:/Program Files/JavaJDK/db/bin/.

puštění Derby Db projektu v Eclipse

V příští lekci, Derby DB - připojení přes DataSource, si předvedeme spojení přes Datasource.


 

Stáhnout

Staženo 44x (3.74 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
Předchozí článek
Derby DB - Připojení k databázi
Miniatura
Všechny články v sekci
DerbyDb
Miniatura
Následující článek
Derby DB - připojení přes DataSource
Aktivity (5)

 

 

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í!