IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

4. diel - Derby DB - Možnosti pripojenia

V minulej lekcii, Derby DB - Pripojenie k databáze , sme sa k databáze Derby z Javy pripojili. Dnešná tutoriál bude taký odpočinkový. Bude len predvádzať rôzne možnosti pripojenia.

Spustenie databázového servera Derby DB

Spúšťanie databázového servera je samozrejme možné aj programovo cez Javu. Cestu si samozrejme musíte nastaviť podľa svojho umiestnenia databázy. Toto je jedno z možných riešení. Možno to samozrejme aj s parametrami pre iný port alebo parametrom pre pripojenie zo siete, a pod.

Pozn .: Nejedná sa o spustenie embedded (vstavané) 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();
}
...

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

Ak potrebujeme vykonať viac spojení s rôznymi parametrami, nie je vhodné spojenie nadväzovať cez jeden String. V tejto situácie využijeme objekt Properties. Ten nám umožní definovať rôzne koncentrácie podľa aktuálnej potreby v rôznych častiach 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");
    }
}
...

Spustenie Derby DB programovo na PC v rámci pripojenia k databáze

Nasledujúci spôsob spustení sa odporúča pre vývojárov, ktorí majú databázu a samozrejme aj DerbyDB k dispozícii na svojom PC. V tomto prípade nie je nutné spúšťať Derby databázu, pretože sa spustí sama v rámci pokusu o pripojenie.

Pozn .: Nejedná sa o spustenie embedded (vstavané) 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");
    }
}
...

Príklad spojenia s Properties bez manuálneho spustenia databázy

Vytvoríme si projekt projekt v Eclipse. V menu zvolíme File -> New -> Java Project. Pomenujeme projekt a nastavíme JRE Java8 (príp. 9). Ďalej pridáme externé knižnice (libraries) do nášho projektu, presnejšie do CLASSPATH. No a nakoniec si vytvoríme spúšťací triedu sa spúšťacie metódou na ktorej si to otestujeme.

Projekt pre Derby DB v Eclipse - DerbyDb

Tu je zdrojový kód projektu. Program je skutočne triviálne. V statickom bloku si vytvoríme test na prístup k objektom z libraries vložených do CLASSPATH. Ďalej možno v programe vidieť dve metódy, z ktorých jedna sa pripája a druhá odpája od databázy.

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

Ako vidíte, projekt sa spustí, ale nastane nepríjemnosť. Databáza sa nám vytvorí v našom projekte, čo nie je príliš vhodné.

Spustenie Derby Db projektu v Eclipse - DerbyDb

Preto vykonáme úpravy zdrojového kódu. Databázu si vytvoríme tak, že si priamo špecifikujeme adresár aj meno databázy.

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 tu je už všetko v poriadku. databaze02 vznikla na ceste C: / Program Files / JavaJDK / db / bin /.

pustenie Derby Db projektu v Eclipse - DerbyDb

V budúcej lekcii, Derby DB - pripojenie cez DataSource , si predvedieme spojenie cez Datasource.


 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 404x (3.74 kB)

 

Predchádzajúci článok
Derby DB - Pripojenie k databáze
Všetky články v sekcii
DerbyDb
Preskočiť článok
(neodporúčame)
Derby DB - pripojenie cez DataSource
Článok pre vás napísal Robert Michalovič
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Programuji převážně v Javě SE,EE a trochu nativním C a CUDA. více viz.https://cz.linkedin.com/in/robert-michalovic
Aktivity