2. diel - Návrh MySQL databázy v IntelliJ IDE
V minulom dieli, Úvod do databáz v Jave , sme si vysvetlili prečo je dobrý nápad pre prácu s dátami používať práve databázu. Hovorili sme si tiež, že v Jave sú pre prácu s databázou 2 hlavné prístupy: JDBC a JPA.
V dnešnom tutoriále si vytvoríme novú databázu, na ktorej sa v ďalších dieloch budeme učiť. Používať budeme databázu MySQL. Pokiaľ chcete v Jave pracovať s inou databázou, môžete si pokojne prečítať tento seriál, pretože SQL dotazy u rôznych databáz sú veľmi podobné a základné otázky dokonca úplne rovnaké.
Inštalácia databázy
Ako prvé samozrejme musíme mať databázu nainštalovanú. Pokiaľ sme s MySQL ešte nikdy nepracovali, mali by sme si najskôr prečítať seriál MySQL databázy krok za krokom, kde sa dozvieme všetko potrebné. MySQL databázu môžeme nainštalovať buď samostatne z webu http://dev.mysql.com/downloads/ alebo napr. v balíku XAMPP, kde je obsiahnutý aj jazyk PHP a databázový admin.
Inštalácia Database navigator
Database navigator je plug-in pre IntelliJ, ktorý umožňuje prezerať databázy priamo z IntelliJ IDE. Umožňuje tiež spúšťať SQL skripty, prezerať a upravovať jednotlivé databázy.
Aktuálna verzia pluginu Database Navigator však postráda schopnosť vytvárať a mazať databázy alebo tabuľky priamo v plugine.
Pre inštaláciu otvoríme v IntelliJ okienko plugins v hlavnom menu
a do vyhľadávača napíšeme Database navigator
"
Práca s databázou v IntelliJ IDE
Akonáhle máme MySQL databázu nainštalovanú a spustenú, môžeme sa k nej pripojiť. Všetku administráciu budeme robiť cez IDE.
Pripojenie k MySQL databáze
Než spustíme Database navigator, je potrebné vytvoriť novú databázu. Otvoríme príkazový riadok alebo integrovaný terminál IntelliJ IDE alebo iný administračný nástroj pre MySQL. Najskôr sa pripojíme do samotného MySQL servera, spôsob pripojenia a prihlasovacie údaje sa môžu líšiť podľa databázy a konfigurácie. Pripojíte sa pomocou príkazu:
mysql -u root // Pro připojení jako root bez hesla mysql -u root -p // Pro připojení jako root s heslem mysql -u <přihlašovací jméno> -p // Pro připojení vámi zvolenými přihlašovacími údaji
Po pripojení vytvoríme novú databázu príkazom:
CREATE DATABASE slovnicek_db;
Po vytvorení databázy sa k nej môžeme pripojiť pomocou IntelliJ IDE. Po inštalácii Database navigator sa mám v postrannej lište objaví položka DB Browser. Kliknutím na ňu sa prepneme do nového okienka pre správu databáz. Kliknite na zelené + v hornej lište a otvorí sa nám panel preddefinovaných pripojení databáz. Vyberieme MySQL a otvorí sa nám prihlasovacie okno.
Port ponecháme nastavený na hodnotu 3306
. Pri
položke Host necháme voľbu localhost
, čo znamená, že
nám databáza beží na tom istom počítači, ako aplikácia. Užívateľské
meno by sme mali mať nastavené na root
, pokiaľ sme ho nemenili.
Do hesla zadáme svoje heslo alebo ho ponecháme prázdne v prípade, že sme ho
nezadávali.
Ďalej je potrebné nastaviť MySQL driver. Nastavíme Driver source
na External library
a položku Driver library na
.jar
súbor, ktorý sme predtým stiahli a uložili vo svojom
systéme alebo do adresára lib/
v Java projekte.
Teraz sa k databáze pripojíme tlačidlom Apply. Pripojenie môžeme otestovať tlačidlom Test Connection, aby sme sa uistili, že sme zadali správne údaje:
Po úspešnom pripojení sa nám zobrazia všetky databázy a tabuľky uložené na MySQL serveri:
Vytvorenie tabuľky
O tabuľkách sme si už hovorili minule. Keďže budeme chcieť ukladať slovíčka, vytvoríme si tabuľku práve pre nich. Definujeme jej stĺpce – to sú vlastnosti, ktoré slovíčko má. Nezabudneme na unikátny identifikátor. Pre vytvorenie tabuľky sa najskôr musíme prepnúť do našej databázy, otvoriť príkazový riadok a vložiť príkaz:
USE slovnicek_db;
Následne vytvoríme novú tabuľku. Tabuľku pomenujeme slovo. Pridáme jej
tri stĺpce. Ako prvý id
typu INT
. id
nastavíme ako PRIMARY KEY
, čím určíme tento stĺpec ako
jednoznačný identifikátor slovíčka v tabuľke. Pridáme mu tiež hodnotu
AUTO_INCREMENT
, čím sa nastaví, aby sa jeho hodnota automaticky
inkrementovala. Ďalej pridáme stĺpce cesky
a
anglicky
. Budú typu VARCHAR
. To je krátky text, pri
ktorom musíme špecifikovať maximálnu veľkosť. Nastavíme mu dĺžku
maximálne 50 znakov.
Do príkazového riadka vložíme príkaz pre vytvorenie novej tabuľky:
CREATE TABLE slovo ( id INT PRIMARY KEY AUTO_INCREMENT, cesky VARCHAR(50) NULL, anglicky VARCHAR(50) NULL );
Nakoniec sa vrátime do IntelliJ IDE a pravým kliknutím myši na našu databázu otvoríme novú ponuku, kde vyberieme položku Refresh. Týmto sa databáza znovu načíta a zobrazí sa nám vytvorená tabuľka. Tabuľku máme hotovú.
Pokiaľ vám tabuľka pripomína javovskú triedu, máte úplnú pravdu. Tabuľkou definujeme spoločné vlastnosti nejakých entít, tu slovíček. Jednotlivé stĺpce sú potom atribúty slovíčok. Pri triede by sme mali slovíčka ako inštancie, v databázovej tabuľke máme slovíčka ako jednotlivé riadky. Minule sme si tiež hovorili, že tabuľky je dokonca možné mapovať priamo na triedy pomocou JPA (Hibernate). Nepredbiehajme však.
Testovacie dáta
Teraz do tabuľky vložíme dáta. V DB Browseri rozklikneme naše nové
pripojenie av okne Schemas nájdeme našu databázu
slovnicek_db
. Klikneme na Tables a na tabuľku s názvom
slovo
. Zobrazí sa nové okienko, ktoré nám umožňuje zobraziť
dáta v tabuľke podľa nami určených filtrov. Zvolíme no filter a
zobrazí sa nám nové prázdne okno:
Akonáhle programujeme nejakú databázovú aplikáciu, je dobrým zvykom pripraviť si testovacie dáta, na ktorých aplikáciu odladíme. Pomocou tlačidla Insert Records (zelené + v líšte nad tabuľkou) do tabuľky vložíme niekoľko testovacích záznamov.
Pridáme niekoľko nových riadkov, pri ktorých vyplníme stĺpce
cesky
a anglicky
. Id sa vyplní automaticky. Nakoniec
musíme dáta nahrať do databázy na MySQL server. Pre nahranie a uloženie
dát stlačíme tlačidlo Commit v hornom paneli nad tabuľkou:
Databázu máme pripravenú, pokračovať budeme nabudúce.
Nabudúce, Databázy v Java JDBC - Výpis dát a parametre , sa na ňu z Javy pripojíme, necháme si vypísať slovíčka z databázy do konzoly a naprogramujeme slovníček, ktorý bude prekladať slovo, ktoré používateľ zadá.