Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

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 na prácu s dátami používať práve databázu. Hovorili sme si tiež, že v Jave existujú pre prácu s databázou dva 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. Ak 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é dotazy sú dokonca úplne rovnaké.

Inštalácia databázy

Ako prvé samozrejme musíme mať databázu nainštalovanú. Ak sme s MySQL ešte nikdy nepracovali, mali by sme si najskôr prečítať seriál MySQL, 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. My zvolíme druhú možnosť a budeme postupovať podľa pokynov z lekcie MySQL krok za krokom - Úvod do MySQL a príprava prostredia.

Inštalácia pluginu Database navigator

Database navigator je plugin pre IntelliJ, ktorý umožňuje prezerať databázy priamo z IntelliJ IDEA. Umožňuje tiež spúšťať SQL skripty, prezerať a upravovať jednotlivé databázy.

Pre inštaláciu klikneme v IntelliJ na záložku Plugins v hlavnom menu a do vyhľadávača napíšeme Database navigator:

Database navigator plugin - Databázy v Jave - JDBC

Klikneme na tlačidlo Install a potom na tlačidlo Restart IDE, ktoré sa nám objaví, akonáhle je plugin nainštalovaný.

Práca s databázou v IntelliJ IDEA

Všetku administráciu MySQL databázy budeme robiť cez IDE. Predpokladáme, že databázu máme nainštalovanú a spustenú.

Pripojenie k MySQL databáze

V IntelliJ si založíme nový Java projekt s názvom Dictionary. V ľavom paneli klikneme na novú ikonku DB Browser, potom na tlačidlo + a z rozbaleného zoznamu vyberieme MySQL:

Pripojenie k MySQL databáze z IntelliJ - Databázy v Jave - JDBC

Tým sa nám v IDE otvorí nové okno Connection, v ktorom iba zmeníme spôsob autentifikácie na možnosť User a ako meno používateľa zadáme root:

Nastavenie pripojenia k MySQL databáze v IntelliJ - Databázy v Jave - JDBC

Port pre pripojenie je nastavený na hodnotu 3306 a pri položke Host je vyplnené localhost, čo znamená, že nám databáza beží na tom istom počítači ako aplikácia. Pripojenie môžeme otestovať tlačidlom Test Connection, aby sme sa uistili, že sme zadali správne údaje:

Informácie o úspešnom pripojení k databáze - Databázy v Jave - JDBC

Teraz sa k databáze pripojíme tlačidlom Apply. Po úspešnom pripojení sa nám v záložke Schemas zobrazia všetky databázy a tabuľky uložené na MySQL serveri.

Vytvorenie databázy

Pre náš projekt vytvoríme k existujúcim databázam novú databázu, ktorú nazveme dictionary_db. Mohli by sme to urobiť pomocou nástroja phpMyAdmin, ako sme zvyknutí z kurzu MySQL. My však databázu vytvoríme z IntelliJ pomocou nášho doplnku Database navigator.

Rozbalíme kartu Console a klikneme na Connection, čím sa nám na pravej strane otvorí rovnomenné okno, do ktorého môžeme písať SQL dotazy. Pre vytvorenie novej databázy zadáme príkaz:

CREATE DATABASE dictionary_db;

Potvrdíme kliknutím na zelenú šípku v hornej časti:

Spustenie SQL príkazu pre vytvorenie databázy v IntelliJ - Databázy v Jave - JDBC

Pred vykonaním príkazu sa nám otvorí ďalšie dialógové okno, v ktorom klikneme na možnosť Use Current Schema.

Aby sme mohli skontrolovať, že sa nám databáza naozaj vytvorila a pridala medzi ostatné, klikneme na záložku Schemas pravým tlačidlom myši a zvolíme možnosť Reload:

Aktualizácia zoznamu databáz v IntelliJ - Databázy v Jave - JDBC

Vidíme, že do zoznamu bola pridaná databáza dictionary_db. Môžeme do nej teda pridať novú tabuľku.

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 ne. Definujeme jej stĺpce – to sú vlastnosti, ktoré slovíčko má. Nezabudneme na unikátny identifikátor, teda na id.

Tabuľku pomenujeme word a pridáme jej tri stĺpce. Prvý bude 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í, že sa jeho hodnota bude automaticky inkrementovať. Ďalej pridáme stĺpce english a spanish, ktoré budú typu VARCHAR(50). Typ VARCHAR(50) je krátky text, pri ktorom sme špecifikovali maximálnu dĺžku maximálne 50 znakov.

Celý SQL príkaz pre vytvorenie novej tabuľky bude teda vyzerať takto:

CREATE TABLE word (
    id INT PRIMARY KEY AUTO_INCREMENT,
    english VARCHAR(50) NULL,
    spanish VARCHAR(50) NULL
);

Vrátime sa do okna Connection zo záložky Console, kód vyššie sem skopírujeme a potvrdíme:

Zadanie SQL príkazu pre vytvorenie tabuľky v IntelliJ - Databázy v Jave - JDBC

V nasledujúcom dialógovom okne tentoraz zvolíme možnosť Select Schema a v novej ponuke vyberieme našu databázu:

Výber databázy pre vykonanie SQL príkazu - Databázy v Jave - JDBC

Do Database navigatora znova klikneme pravým tlačidlom myši a spustíme Reload. Zobrazí sa nám novo vytvorená tabuľka:

Zobrazenie pridanej tabuľky v IntelliJ - Databázy v Jave - JDBC

Ak vám tabuľka pripomína javovskú triedu, máte úplnú pravdu. Tabuľkou definujeme spoločné vlastnosti nejakých entít, tu slovíčok. 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. Vrátime sa teda opäť do okna Connection, kam zadáme tento SQL príkaz:

INSERT INTO word (english, spanish)
VALUES
('computer', 'ordenador'),
('ball', 'pelota'),
('dog', 'perro'),
('I', 'yo'),
('love', 'amor'),
('ICT', 'ICT');

V DB Browseri rozklikneme záložku Schemas a našu databázu dictionary_db. Kliknite na Tables a na tabuľku s názvom word. Zobrazí sa nové okno, ktoré nám umožňuje zobraziť dáta v tabuľke podľa nami určených filtrov:

Okienko zobrazenia tabuľky - Databázy v Jave - JDBC

Zvolíme No Filter a zobrazia sa nám pridané záznamy:

Doplnenie záznamu tabuľky v IntelliJ - Databázy v Jave - JDBC

Záznamy do tabuľky môžeme tiež pridávať a editovať bez SQL príkazov priamo v IDE. V otvorenej tabuľke word klikneme na +. Na novom riadku vyplníme stĺpce english a spanish, id sa vyplní automaticky, potvrdíme klávesom Enter:

Doplnenie záznamu tabuľky v IntelliJ - Databázy v Jave - JDBC

Nakoniec musíme dáta nahrať do databázy na MySQL server. Keby sme si teraz tabuľku otvorili napríklad v nástroji phpMyAdmin, žiadne dáta by sme v nej nenašli. Pre nahranie a uloženie dát stlačíme tlačidlo Commit v hornom paneli nad tabuľkou:

Tlačidlo Commit pre nahranie dát na MySQL server - Databázy v Jave - JDBC

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á.


 

Predchádzajúci článok
Úvod do databáz v Jave
Všetky články v sekcii
Databázy v Jave - JDBC
Preskočiť článok
(neodporúčame)
Databázy v Java JDBC - Výpis dát a parametre
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
2 hlasov
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity