23. diel - DerbyDB - prehliadanie databázy cez Squirrel
V dnešnom tutoriále si ukážeme inštaláciu a prácu so správcom (prehliadačom) databázy Squirrel SQL.
Ide o rozšírený univerzálny nástroj pre pripojenie k databázam a prácu s nimi. Je free a celý naprogramovaný v Jave. Správca Squirrel má v sebe podporu pre viac databáz. Jedná sa o užitočný nástroj pre prácu s databázami.
Stiahnutie programu Squirrel
Squirrel sa nachádza na tomto odkaze. Vyberieme si verziu vhodnú pre náš operačný systém:
Keďže sa jedná o JAVA aplikáciu, je nutné mať nainštalovanú JAVU (prípadne OpenJDK alebo jej implementácia) konkrétne JRE vo verzii 8,9,10 a vyššej a nastavenú PATH.
Inštalácia programu
Po stiahnutí a spustení sa objaví okno s inštaláciou. Hoci to vyzerá ako inštalácia, nejedná sa o inštaláciu, iba o nastavení a kopírovanie. Teda sa Squirrel neodinstalovává, stačí ho len zmazať. Do ďalších krokov tzv. Inštalácia sa dostaneme cez tlačidlo NEXT:
Druhý krok je informatívny a môžeme ho preskočiť. V treťom kroku vykonáme nastavenie cesty inštalácie programu (kopírovanie s nastaveniami). Vo štvrtom kroku nastavíme jazyk a podpory (plug-iny) pre rôzne databázy. Tu si vyberieme DERBY DB a voliteľný plugin Čeština a ďalšie podľa potreby:
V ďalšom kroku dôjde ku kopírovaniu do zvoleného adresára. V poslednom kroku ide o začlenenie do Windows a vytvorenie ikony na ploche.
Spustenie programu
Ak máme nainštalovanú Javu 09,10,11, a vyššie môžeme
mať problém so spustením cez ikonu na ploche. To možno vyriešiť spustením
priamo cez súbor squirrel-sql.jar
. Súbor
squirrel-sql.jar
nájdeme v adresári, kde sme Squirrel nechali
nakopírovať, alebo v nastavení PATH
. Po spustení je nutné
vykonať tri kľúčové kroky:
- Vytvorenie databázy a tabuľky s dátami
- Nastaveni driveru k databáze
- Nastaveni účtu (alias) k databáze
Jednotlivé kroky si postupne preberieme.
Vytvorenie databázy a tabuľky s dátami
Databázu databazeE01
a tabuľku tabulkaE01
by sme
mohli založiť cez príkaz IJ
. My si ich založíme týmto
kódom:
package e_zaloha; import java.sql.*; import javax.swing.JOptionPane; public class E01_TvorbaDatabaze { static { try { Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } private static Connection connect=null; private static Statement statement = null; private static void pripojeniKDatabazi(){ try { connect = DriverManager.getConnection("jdbc:derby:D:\\JavaProjekty\\Java.DB.Derby\\X_DerbyDB\\bin\\databazeE01" + ";create=true;user=zaloha1;password=heslo1"); System.out.println("Podarilo se pripojit databazeE01"); } catch (Exception e) { JOptionPane.showMessageDialog(null," Nepodarilo se pripojit databazeE01 "); e.printStackTrace(); } } private static void odpojimeDatabazi() { try { if (connect != null) connect.close(); System.out.println("\nPodarilo se odpojit od databaze databazeE01"); } catch (SQLException e) { e.printStackTrace(); } } private static void vytvoreniTabulkySDaty(){ // Vytvorime tabulku pro data if(connect == null) return; try { statement = connect.createStatement(); statement.executeUpdate("create table tabulkaE01 (id INT not null primary key GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1)," + "firstName VARCHAR(20), lastName VARCHAR(20), title VARCHAR(20), hodnota INT )"); System.out.println("Podarilo se vytvorit tabulku tabulkaE01"); } catch (SQLException e) { System.out.println("Nepovedlo se vytvorit tabulku tabulkaE01"); e.printStackTrace(); } // Vytvorime data a naplnime jimi tabulku if(statement == null) return; try { statement.executeUpdate("INSERT INTO tabulkaE01 (firstName,lastName,title,hodnota) VALUES ('Jmeno1','Prijmeni01','Text001',111111)"); statement.executeUpdate("INSERT INTO tabulkaE01 (firstName,lastName,title,hodnota) VALUES ('Jmeno2','Prijmeni02','Text002',222222)"); statement.executeUpdate("INSERT INTO tabulkaE01 (firstName,lastName,title,hodnota) VALUES ('Jmeno3','Prijmeni03','Text003',333333)"); statement.executeUpdate("INSERT INTO tabulkaE01 (firstName,lastName,title,hodnota) VALUES ('Jmeno4','Prijmeni04','Text004',444444)"); statement.executeUpdate("INSERT INTO tabulkaE01 (firstName,lastName,title,hodnota) VALUES ('Jmeno5','Prijmeni05','Text005',555555)"); statement.executeUpdate("INSERT INTO tabulkaE01 (firstName,lastName,title,hodnota) VALUES ('Jmeno6','Prijmeni06','Text006',666666)"); statement.executeUpdate("INSERT INTO tabulkaE01 (firstName,lastName,title,hodnota) VALUES ('Jmeno7','Prijmeni07','Text007',777777)"); System.out.println("Podarilo se ulozit data databazeE01"); statement.close(); } catch (SQLException e) { System.out.println("Nepovedlo se ulozit data databazeE01"); e.printStackTrace(); } } public static void main(String[] args) { System.out.println("Start Programu "); pripojeniKDatabazi(); vytvoreniTabulkySDaty(); odpojimeDatabazi(); System.out.println("Konec Programu "); } }
Do cesty k databáze si vložíme cestu k našej databáze. Do
user
a password
vložíme svojho používateľa a
heslo.
Nastaveni driveru k databáze
Nastavenie driveru predstavuje pridanie konektora pre
databázu. V ľavom stĺpci klikneme na Drivers. V zobrazenom
zozname vyberieme Apache Derby Client
a klikneme na ikonu ceruzky
(editácia). Potom v záložke Java Class Path vyberieme
driver:
Drivers dá zobraziť aj cez menu Window - View drivers, alebo klávesovou skratkou CTRL + SHIFT + D.
Môžeme tiež vytvoriť nový driver cez ikonu +. Potom
prepneme na záložku Extra Class Path a stlačíme
Add. Otvorí sa okno, v ktorom nájdeme cestu k
derbyclient.jar
, alebo označíme všetky jar
súbory,
ktoré sú v adresári db/lib/..
k dispozícii:
Potom stlačíme Open a OK. Červený krížik u driveru sa zmení na zelenú fajku. Podobne postupujeme aj v prípade iných databázových serverov (napr. MSSQL, MySQL, PostgreSQL, ..):
Nastaveni účtu (alias) k databáze
Najskôr spustíme databázový server cez súbor
startNetworkServer.bat
. Potom sa prepneme na záložku
Aliases. Potom musíme vytvoriť nové
pripojenie. Klikneme na tlačidlo +. Otvorí sa nám
okno, do ktorého vložíme naše údaje:
K databáze sa môžeme pripojiť napr. Cez adresárovú
štruktúru tak, že do URL vložíme cestu k našej databáze
databazeE01
.
Stlačením tlačidla Test vyskúšame pripojenia k databáze.
Nakoniec stlačíme OK a alias sa vytvorí. Teraz sa pripojíme. Dvakrát klikneme na náš alias. V otvorenom okne Connect to: ... stlačíme Connect:
Po úspešnom pripojení klikneme na záložku Metadáta, ktorá nám zobrazí informácia o našej databáze:
Tieto informácie môžeme získať aj programovo cez objekt DatabaseMetaData. Ukážeme si v ďalších článkoch.
V záložke Content vidíme dáta, ktoré sme vložili do tabuľky pri založení databázy:
V budúcej lekcii, Derby DB - Schémy a tabuľky , si vysvetlíme rozdiel medzi tabuľkami a schémami. Vvyzkoušíme si tvorbu a odstránenie schém.
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 5x (6.82 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Java