3. diel - Derby DB - Pripojenie k databáze
V minulej lekcii, Derby DB - Spustenie a vypnutie databázy , sme si databázu Apache Derby spustili ako službu. V dnešnom tutoriále sa k databáze pripojíme a to ako cez ij, tak cez Javu.
Pripojenie databázy
Parametre pripojenia
Univerzálne pripojenie (connection) používame v prípade pripojenia cez IJ
k vypnutej databáze na localhost. IJ nástroj databázu sám zapne. Tvar
pripojenia je nasledovné:
jdbc:derby:databaseName;URLAttributes
V prípade pokusu o sieťové pripojenie k zapnutej databáze je tvar
nasledovné:
jdbc:derby://server[:port]/databaseName[;URLAttributes=value[;...]]
databaseName
- meno databázyURLAttributes
- žiadny, jeden alebo viac URL parametrovserver
- localhost, IP adresa (LAN, MAN, WAN)port
- TCP port, na ktorom bude databázový server počúvať
Najzaujímavejšie sú URL atribúty. Tu si uvedieme len tie najdôležitejšie. Zvyšné sa nachádzajú v Referencie DB.pdf v manuáli.
atribút pripojenia | popis |
---|---|
bootPassword = heslo | Heslo, napr. "Fsd653EEER" pre zašifrovanú databázu |
create = true | Ak je true a databázy neexistuje, potom sa počas pripojenia
vytvorí |
shutdown = true | Ak je true , tak to danú databázu vypne (ukončí) |
databasename = meno databázy | Označuje meno databázy, s ktorou chceme pracovať |
user = používateľ | Definujeme používateľa, ktorý sa chce k danej databáze pripojiť |
password = heslo | Tu definujeme heslo daného užívateľa, ktorý sa prihlasuje |
... | parametrov je oveľa viac ... |
Spustíme ako administrátori IJ nástroj (napr.
C:/ProgramFiles/JavaJDK/db/bin/ij.bat
) a predvedieme si pripojenie
do databázy. IJ nástroj sa dá využiť ako v prípade
spusteného databázového servera, tak i vypnutého servera. V tejto časti si
predvedieme pripojenie pri vypnutej databáze.
ij version 10.13 /**** pripojime se k databazi, pokud neexistuje vytvorime ji ****/ ij> connect 'jdbc:derby:databaze01;create=true;user=uzivatel1;password=heslo1'; /**** odpojime od databaze ****/ ij> disconnect; /**** ukoncime ij program****/ ij> exit;
V prípade, že databázový server bude spustený, je nutné do pripojenie zadať IP adresu.
ij version 10.13 ij> connect 'jdbc:derby://localhost:1527/databaze01;create=true;user=uzivatel1;password=heslo1'; ij> disconnect; ij> exit;
Po vykonaní oboch variantov sme práve vytvorili databázu s menom
databaze01
, jej vlastníkom čiže administrátorom je
používateľ menom uzivatel1
a jeho heslo je heslo1
.
Atribút url create=true
hovorí, že ak databázy neexistuje,
potom je nutné ju vytvoriť. Daný príkaz môžete vykonať vo Windows cez CMD
alebo PowerShell, odporúčam ako administrátor, aby nevznikli problémy s
právami prístupu.
Pripojenie cez Javu
Opäť si vytvoríme Java SE projekt v IDE. V tutoriále budem používať Eclipse IDE. Skontrolujeme, či máme Java perspektívu a vytvoríme projekt. V menu vyberieme File -> New -> Java Project. Pomenujeme projekt a nastavíme JRE Java8.
Ako ďalšie si pridáme externé knižnice do nášho projektu. Tzv.
vykonáme pridanie knižníc do CLASSPATH
. Ide o tieto externé
knižnice:
- derbyclient.jar
- derbytools.jar
- derbyoptionaltools.jar
Klikneme (označíme si) náš projekt a stlačíme ALT + ENTER alebo hore vyberieme Project -> Properties. Zvolíme Java Build Path, vyberieme záložku Libraries -> Add External JARs. Po pridaní daných knižníc zvolíme APPLY a potom OK. Vpravo v Project Exploreri vidíme aké * .jar sa nám do projektu pridali.
Ako ďalšie si vyrobíme jednoduchú triedu, ktorá sa len pripojí a
odpojí k databáze. Opäť pridáme parameter create=true
, ktorý
nám zaručí, že sa databáza vytvorí pri spojení.
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() { try { connect = DriverManager.getConnection("jdbc:derby://localhost:1527/databaze01;" + "create=true;user=uzivatel1;password=heslo1"); 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"); } }
Teraz niečo o zdrojovom kóde. Z dôvodu zjednodušenia sú všetky
premenné a metódy typu static
. V statickom cyklu sa pokúsime
vytvoriť inštanciu driver (Connectoru), ktorý potrebujeme k databáze.
Prakticky tento úsek nie je nutný, ale dávam ho tam pre test funkčnosti
Connectoru. Sami vidíte, že s danou inštanciou už nikde nepracujeme.
java.sql.Connect
je objekt, ktorý slúži na pripojenie k
databázam. Pred spustením daného kódu samozrejme nezabudnite spustiť
databázový server, inak nedôjde k spojeniu a bude vyvolaná výnimka.
Keď sa pozrieme do výpisu konzoly, potom kontrolné výpisy potvrdili
úspešné vytvorenie databázy. Potvrdenie je vykonané cez výpis do
príkazového riadku, kde si môžeme všimnúť vzniku adresára
databaze01
, ktorý slúži ako adresár databázy.
Nabudúce, Derby DB - Možnosti pripojenia , si rozoberieme spustenie databázového servera cez Javu a možnosti prihlasovanie k databáze.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkamiStiahnuté 489x (2.99 kB)