IT rekvalifikace s podporou uplatnění. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

Lekce 2 - Návrh MySQL databáze v IntelliJ IDE

V minulém dílu, Úvod do databází v Javě, jsme si vysvětlili proč je dobrý nápad pro práci s daty používat zrovna databázi. Říkali jsme si také, že v Javě jsou pro práci s databází 2 hlavní přístupy: JDBC a JPA.

V dnešním tutoriálu si vytvoříme novou databázi, na které se v dalších dílech budeme učit. Používat budeme databázi MySQL. Pokud chcete v Javě pracovat s jinou databází, můžete si klidně přečíst tento seriál, jelikož SQL dotazy u různých databází jsou velmi podobné a základní dotazy dokonce úplně stejné.

Instalace databáze

Jako první samozřejmě musíme mít databázi nainstalovanou. Pokud jsme s MySQL ještě nikdy nepracovali, měli bychom si nejprve přečíst seriál MySQL, kde se dozvíme vše potřebné. MySQL databázi můžeme nainstalovat buď samostatně z webu http://dev.mysql.com/downloads/ nebo např. v balíku XAMPP. My zvolíme druhou možnost a budeme postupovat podle pokynů z lekce MySQL krok za krokem - Úvod do MySQL a příprava prostředí.

Instalace pluginu Database navigator

Database navigator je plugin pro IntelliJ, který umožňuje prohlížet databáze přímo z IDE IntelliJ IDEA. Umožňuje také spouštět SQL skripty, prohlížet a upravovat jednotlivé databáze.

Pro instalaci klikneme v IntelliJ na záložku Plugins v hlavním menu a do vyhledávače napíšeme Database navigator:

Database navigator plugin - Databáze v Javě - JDBC

Klikneme na tlačítko Install a poté na tlačítko Restart IDE, které se nám objeví, jakmile je plugin nainstalován.

Práce s databází v IntelliJ IDEA

Veškerou administraci MySQL databáze budeme dělat přes IDE. Předpokládáme, že databázi máme nainstalovanou a spuštěnou.

Připojení k MySQL databázi

V IntelliJ si založíme nový Java projekt s názvem Slovnicek. V levém panelu klikneme na novou ikonku DB Browser, poté na tlačítko + a z robaleného seznamu vybereme MySQL:

Připojení k MySQL databázi z IntelliJ - Databáze v Javě - JDBC

Tím se nám v IDE otevře nové okno Connection, ve kterém pouze změníme způsob autentifikace na možnost User a jako jméno uživatele zadáme root:

Nastavení připojení k MySQL databázi v IntelliJ - Databáze v Javě - JDBC

Port pro připojení je nastavený na hodnotu 3306 a u položky Host je vyplněno localhost, což znamená, že nám databáze běží na tom samém počítači, jako aplikace. Připojení můžeme otestovat tlačítkem Test Connection, abychom se ujistili, že jsme zadali správné údaje:

Informace o úspěšném připojení k databázi - Databáze v Javě - JDBC

Nyní se k databázi připojíme tlačítkem Apply. Po úspěšném připojení se nám v záložce Schemas zobrazí všechny databáze a tabulky uložené na MySQL serveru.

Vytvoření databáze

Pro náš projekt si ke stávajícím databázím vytvoříme novou databázi, kterou nazveme slovnicek_db. Mohli bychom to udělat pomocí nástroje phpMyAdmin, jak jsme zvyklí z kurzu MySQL. My si však databázi vytvoříme z IntelliJ pomocí našeho pluginu Database navigator.

Rozbalíme záložku Console a klikneme na Connection, po pravé straně se nám tím otevře stejnojmenné okno, kam můžeme psát SQL dotazy. Pro vytvoření nové databáze zadáme příkaz:

CREATE DATABASE slovnicek_db;

Potvrdíme kliknutím na zelenou šipku v horní části:

Spuštění SQL příkazu pro vytvoření databáze v IntelliJ - Databáze v Javě - JDBC

Před provedením příkazu se nám otevře další dialogové okno zvolíme, ve kterém klikneme na možnost Use Current Schema.

Abychom mohli zkontrolovat, že se nám databáze opravdu vytvořila a přidala mezi ostatní, klikneme na záložku Schemas pravým tlačítkem myši a zvolíme možnost Reload:

Aktualizace seznamu databází v IntelliJ - Databáze v Javě - JDBC

Vidíme, že v seznamu přibyla databáze slovnicek_db. Můžeme tedy do ní přidat novou tabulku.

Vytvoření tabulky

O tabulkách jsme si již říkali minule. Jelikož budeme chtít ukládat slovíčka, vytvoříme si tabulku právě pro ně. Definujeme jí sloupce - to jsou vlastnosti, které slovíčko má. Nezapomeneme na unikátní identifikátor, tedy na id.

Tabulku pojmenujeme slovo a přidáme jí tři sloupce. První bude id typu INT. id nastavíme jako PRIMARY KEY, čímž určíme tento sloupec jako jednoznačný identifikátor slovíčka v tabulce. Přidáme mu také hodnotu AUTO_INCREMENT, čímž se nastaví, že se jeho hodnota bude automaticky inkrementovat. Dále přidáme sloupce cesky a anglicky, které budou typu VARCHAR(50). Typ VARCHAR(50) je krátký text, u kterého jsme specifikovali maximální délku maximálně 50 znaků.

Celý SQL příkaz pro vytvoření nové tabulky bude tedy vypadat takto:

CREATE TABLE slovo (
    id INT PRIMARY KEY AUTO_INCREMENT,
    cesky VARCHAR(50) NULL,
    anglicky VARCHAR(50) NULL
);

Vrátíme se do okna Connection ze záložky Console, kód výše sem zkopírujeme a potvrdíme:

Zadání SQL příkazu pro vytvoření tabulky v IntelliJ - Databáze v Javě - JDBC

V následujícím dialogovém okně tentokrát zvolíme možnost Select Schema a v nové nabídce vybereme naši databázi:

Výběr databáze pro provedení SQL příkazu - Databáze v Javě - JDBC

Do Database navigatoru znovu klikneme pravým tlačítkem myši a spustíme Reload. Zobrazí se nám nově vytvořená tabulka:

Zobrazení přidané tabulky v IntelliJ - Databáze v Javě - JDBC

Pokud vám tabulka připomíná javovskou třídu, máte úplnou pravdu. Tabulkou definujeme společné vlastnosti nějakých entit, zde slovíček. Jednotlivé sloupce jsou poté atributy slovíček. U třídy bychom měli slovíčka jako instance, v databázové tabulce máme slovíčka jako jednotlivé řádky. Minule jsme si také říkali, že tabulky je dokonce možné mapovat přímo na třídy pomocí JPA (Hibernate). Nepředbíhejme však.

Testovací data

Nyní do tabulky vložíme data. Vrátíme se tedy opět do okna Connection, kam zadáme tento SQL příkaz:

INSERT INTO slovo (cesky, anglicky)
VALUES
('počítač', 'computer'),
('míč', 'ball'),
('pes', 'dog'),
('já', 'I'),
('mít rád', 'like'),
('devbook', 'devbook');

V DB Browseru rozklikneme záložku Schemas a naši databázi slovnicek_db. Klikneme na Tables a na tabulku s názvem slovo. Objeví se nové okno, které nám umožňuje zobrazit data v tabulce podle námi určených filtrů:

Okno pro nastavení filtrování záznamů tabulky - Databáze v Javě - JDBC

Zvolíme No Filter a zobrazí se nám přidané záznamy:

Zobrazení přidaných záznamů do tabulky v IntelliJ - Databáze v Javě - JDBC

Záznamy do tabulky můžeme také přidávat a editovat bez SQL příkazů přímo v IDE. V otevřené tabulce slovo klikneme na +. Na novém řádku vyplníme sloupce cesky a anglicky, id se vyplní automaticky, potvrdíme klávesou Enter:

Doplnění záznamu tabulky v IntelliJ - Databáze v Javě - JDBC

Nakonec musíme data nahrát do databáze na MySQL server. Kdybychom si teď tabulku otevřeli například v nástroji phpMyAdmin, žádná data bychom v ní nenašli. Pro nahrání a uložení dat stiskneme tlačítko Commit v horním panelu nad tabulkou:

Tlačítko Commit pro nahrání dat na MySQL server - Databáze v Javě - JDBC

Databázi máme připravenou, pokračovat budeme příště.

Příště, Databáze v Java JDBC - Výpis dat a parametry, se na ni z Javy připojíme, necháme si vypsat slovíčka z databáze do konzole a naprogramujeme slovníček, který bude překládat slovo, které uživatel zadá.


 

Předchozí článek
Úvod do databází v Javě
Všechny články v sekci
Databáze v Javě - JDBC
Přeskočit článek
(nedoporučujeme)
Databáze v Java JDBC - Výpis dat a parametry
Článek pro vás napsal David Hartinger
Avatar
Uživatelské hodnocení:
95 hlasů
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 se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity