Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
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í.
BF extended 2022

Lekce 23 - Derby DB - prohlížení databáze přes SQuirreL SQL

V minulé lekci, Derby DB - Bezpečnost - Šifrovaná komunikace SSL/TLS 4, jsme pokračovali v peerAutentifikaci. Předvedli jsme si spojení přes IJ příkaz a také programově přes Javu.

V dnešním tutoriálu si ukážeme instalaci a práci se správcem (prohlížečem) databáze SQuirreL SQL.

Jedná se o rozšířený univerzální nástroj pro připojení k databázím a práci s nimi. Je free a celý naprogramován v Javě. Správce SQuirreL SQL má v sobě podporu pro více databází. Jedná se o užitečný nástroj pro práci s databázemi.

Stažení programu SQuirreL SQL

SQuirreL SQL se nachází na tomto odkazu. Vybereme si verzi vhodnou pro náš operační systém:

Stazeni Squirrel

Jelikož se jedná o JAVA aplikaci, je nutno mít nainstalovanou JAVU (případně OpenJDK či její implementace) konkrétně JRE ve verzi 8,9,10 a vyšší a nastavenou PATH.

Instalace programu

Po stažení a spuštění se objeví okno s instalací. Přestože to vypadá jako instalace, nejedná se o instalaci, pouze o nastavení a kopírování. Tudíž se SQuirreL SQL neodinstalovává, stačí jej pouze smazat. Do dalších kroků tzv. instalace se dostaneme přes tlačítko NEXT:

StartInstalace

Druhý krok je informativní a můžeme jej přeskočit. V třetím kroku provedeme nastavení cesty instalace programu (kopírování s nastaveními). Ve čtvrtém kroku nastavíme jazyk a podpory(plug-iny) pro různé databáze. Zde si vybereme DERBY DB a volitelný plugin Čeština a další dle potřeby:

Nastaveni Pluginů databazí

V dalším kroku dojde ke kopírování do zvoleného adresáře. V posledním kroku jde o začlenění do Windows a vytvoření ikony na ploše.

Spuštění programu

Pokud máme nainstalovanou Javu 09,10,11, a vyšší můžeme mít problém se spuštěním přes ikonu na ploše. To lze vyřešit spuštěním přímo přes soubor squirrel-sql.jar. Soubor squirrel-sql.jar nalezneme v adresáři, kde jsme SQuirreL SQL nechali nakopírovat, nebo v nastavení PATH. Po spuštění je nutno provést tři klíčové kroky :

  1. Vytvoření databáze a tabulky s daty
  2. Nastaveni driveru k databázi
  3. Nastaveni účtu(alias) k databázi

Jednotlivé kroky si postupně probereme.

Vytvoření databáze a tabulky s daty

Databázi databazeE01 a tabulku tabulkaE01 bychom mohli založit přes příkaz IJ. My si je založíme tímto kódem:

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ázi si vložíme cestu k naší databázi. Do user a password vložíme svého uživatele a heslo.

Nastaveni driveru k databázi

Nastavení driveru představuje přidání konektoru pro databázi. V levém sloupci klikneme na Drivers. V zobrazeném seznamu vybereme Apache Derby Client a klikneme na ikonu tužky(editace). Poté v záložce Java Class Path vybereme driver:

Nastaveni driverů databazí

Drivers lze zobrazit také přes menu Window - View Drivers, nebo klávesovou zkratkou CTRL+SHIFT+D.

Můžeme také vytvořit nový driver přes ikonu +. Poté přepneme na záložku Extra Class Path a stiskneme Add. Otevře se okno, v kterém najdeme cestu k derbyclient.jar, nebo označíme všechny jar soubory, které jsou v adresáři db/lib/.. k dispozici:

Pak stiskneme Open a OK. Červený křížek u driveru se změní na zelenou fajfku. Podobně postupujeme i v případě jiných databázových serverů (např. MSSQL,MySQL,Pos­tgreSQL, ..):

Nastaveni účtu(alias) k databázi

Nejdříve spustíme databázový server přes soubor startNetworkServer.bat. Pak se přepneme na záložku Aliases. Poté musíme vytvořit nové připojení. Klikneme na tlačítko +. Otevře se nám okno, do kterého vložíme naše údaje:

K databázi se můžeme připojit např. přes adresářovou strukturu tak, že do URL vložíme cestu k naší databázi databazeE01.

Stiskem tlačítka Test vyzkoušíme připojení k databázi.

Nakonec stiskneme OK a alias se vytvoří. Nyní se připojíme. Dvakrát klikneme na náš alias. V otevřeném okně Connect to:... stiskneme Connect:

Po úspěšném připojení klikneme na záložku Metadata, která nám zobrazí informace o naší databázi:

Tyto informace můžeme získat i programově přes objekt DatabaseMetaData. Ukážeme si v dalších článcích.

V záložce Content vidíme data, které jsme vložili do tabulky při založení databáze:

V příští lekci, Derby DB - Schémata a tabulky, si vysvětlíme rozdíl mezi tabulkami a schématy. Vvyzkoušíme si tvorbu a odstranění schémat.


 

Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 3x (6.82 kB)
Aplikace je včetně zdrojových kódů v jazyce Java

 

Předchozí článek
Derby DB - Bezpečnost - Šifrovaná komunikace SSL/TLS 4
Všechny články v sekci
Derby DB
Přeskočit článek
(nedoporučujeme)
Derby DB - Schémata a tabulky
Článek pro vás napsal Robert Michalovič
Avatar
Uživatelské hodnocení:
1 hlasů
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

 

 

Komentáře

Avatar
Adam Sochor
Člen
Avatar
Adam Sochor:25. června 16:11

Nevím, čím to je, ale mě se ty vytvořené tabulky vůbec nezobrazovaly ve schématu (na obrázku ZÁLOHA1) ale ve schématu APP->TABLE a trvalo mi docela dlouho než jsem zjistil kde to je.

 
Odpovědět
25. června 16:11
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.

Zobrazeno 1 zpráv z 1.