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.Properties
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.
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é.
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 /.
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 podmienkamiStiahnuté 450x (3.74 kB)