2. díl - Návrh MySQL databáze v NetBeans IDE

Java Databáze Návrh MySQL databáze v NetBeans IDE

V minulém dílu našeho seriálu tutoriálů o práci s databázemi 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 různých databází jsou velmi podobné a základní dotazy dokonce úplně stejné.

Instalace databáze

Jako první samozřejmě musíte mít databázi nainstalovanou. Pokud jste s MySQL ještě nikdy nepracovali, doporučuji si nejprve přečíst seriál MySQL databáze krok za krokem, kde se dozvíte vše potřebné. MySQL databázi můžete nainstalovat buď samostatně z webu http://dev.mysql.com/downloads/ nebo např. v balíku XAMPP, kde je obsažen i jazyk PHP a databázový admin.

Práce s databází v NetBeans IDE

Jakmile máme MySQL databázi nainstalovanou a spuštěnou, můžeme se k ní připojit. Veškerou administraci budeme dělat přes NetBeans IDE. Administrační nástroje jsou zde velmi omezené, ale přesto to s nimi zvládneme. Pokud máte k dispozici jiný administrační nástroj, půjde vám to v něm lépe.

Připojení k MySQL databázi

V okně Projects přepneme na záložku Services. Případně můžeme použít menu Window -> Services. Rozbalíme uzel Databases a v něm uvidíme položku MySQL Server at localhost. Ta se tam objevila díky tomu, že máme nainstalovanou databázi. Můžeme se ji pokusit pomocí kontextového menu nastartovat a připojit. Tento pokus však selže, jelikož nemáme zadané údaje pro připojení. Z kontextového menu tedy zvolíme možnost Properties.

Vlastnosti MySQL databáze v NetBeans IDE

Port ponecháme na 3306, Host na localhost, což znamená, že nám databáze běží na tom samém počítači, jako aplikace. Uživatelské jméno byste měli mít nastavené na root, pokud jste ho neměnili. Do hesla zadejte vaše heslo nebo ho ponechte prázdné v případě, že jste heslo nezadávali. Nyní se k databázi připojte pomocí Connect.

Vlastnosti MySQL databáze v NetBeans IDE

Návrh databáze

V našem seriálu budeme programovat jednoduchý slovníček. Založme si k tomu novou databázi. NetBeans bohužel neumí založit databázi s UTF-8 kódováním, proto to budeme muset zvládnout SQL dotazem.

Když rozbalíte uzel MySQL Server at localhost, uvidíte zde již vytvořené databáze. Ty jsou tam jako výchozí a slouží pro systémové účely. Vyberte libovolnou a zvolte Connect. Vytvoří se nové připojení, na které klikněte pravým a zvolte Execute Command.

Spuštění databázového dotazu v NetBeans IDE

Do nového okna vložíme následující SQL kód:

CREATE DATABASE `slovnicek_db` CHARACTER SET utf8 COLLATE utf8_general_ci;

Dotaz spustíme pomocí ikonky Run SQL (zelené play na žlutém válci v toolbaru vpravo).

Když nyní obnovíte uzel MySQL at localhost (klikněte pravým a zvolte Refresh), uvidíte zde novou databázi slovnicek_db. Připojíme se k ní a nové připojení rozbalíme až do složky Tables. Staré připojení k původní tabulce z MySQL můžeme odstranit. Do nové databáze přidáme pomocí kontextového menu novou tabulku.

Vytvoření databázové tabulky v NetBeans IDE

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.

Tabulku pojmenujeme slovo.

Tabulce přidáme 3 sloupce. Jako první id typu INT. Zde zaškrtneme Primary key, čímž určíme tento sloupec jako jednoznačný identifikátor slovíčka v tabulce. Dále přidáme sloupce cesky a anglicky. Budou typu varchar. To je krátký text, u kterého musíme speficikovat maximální velikost. Tu zvolíme jako 50 znaků.

Struktura nové MySQL tabulky v NetBeans IDE

Dialog potvrdíme. Ke sloupci id je potřeba nastavit, aby se jeho hodnota automaticky inkrementovala. To musíme udělat opět pomocí kódu, NetBeans funkci bohužel nemá stále implementovanou. Spusťte na připojení následující dotaz:

ALTER TABLE slovo CHANGE id id INT(10) NOT NULL AUTO_INCREMENT;

Každé nově vložené slovíčko bude mít nyní o 1 vyšší id než to poslední. Pokud nějaká slovíčka odstraníme, jejich id se již znovu nevyužijí. Je to tak správně, recyklace starých id by mohla způsobit problémy. Tabulku máme hotovou.

Pozn.: 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

Nová tabulka se objevila v oknu Services. Klikneme na ní pravým a zvolíme View Data. Vidíme, že tabulka je zatím prázdná.

Zobrazení dat v MySQL tabulce v Netbeans IDE

Jakmile programujeme nějakou databázovou aplikaci, je dobrým zvykem připravit si testovací data, na kterých aplikaci odladíme. Pomocí tlačítka InsertRecords tedy do tabulky vložíme několik testovacích záznamů.

Tlačítkem Add Row přidáme několik nových řádků, u kterých vyplníme sloupce cesky a anglicky. Id se vyplní automaticky po potvrzení dialogu.

Vkládání testovacíh dat to MySQL databáze v NetBeans IDE

Databázi máme tedy připravenou.

Příště 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á.


 

  Aktivity (1)

Článek pro vás napsal David Čápka
Avatar
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.

Jak se ti líbí článek?
Celkem (4 hlasů) :
55555


 


Miniatura
Předchozí článek
Úvod do databází v Javě
Miniatura
Všechny články v sekci
Databáze v Javě - JDBC

 

 

Komentáře
Zobrazit starší komentáře (9)

Avatar
x4m
Člen
Avatar
x4m:

Zdravím všechny, mám stejný problém ohledně kódování. Mám databázi nastavenou na utf8_czech_ci a když ukládám text do tabulky databáze tak mi nezobrazuje ř a ž. Nemáte s tím nějaké zkušenosti ?

 
Odpovědět 16.6.2014 9:08
Avatar
x4m
Člen
Avatar
Odpovídá na x4m
x4m:

Tak problém jsem vyřešil, ve třídě která definuje připojení k databázi jsem upravil kód: DriverManager­.getConnection("jdbc:mys­ql://localhos­t:3306/databa­ze_pro_seos?u­ser=root&passwor­d=&useUnicode=y­es&characterEn­coding=UTF-8"); kdyby někdo potřeboval vědět ;)

 
Odpovědět 17.6.2014 9:52
Avatar
David Šimák:

Ahoj mám stejný problém, nevím si s tím rady. Vyřešil jsi to nějak?

 
Odpovědět 20.7.2015 18:42
Avatar
GoliathShouldWin:

Pokud má někdo problémy s tím, že nevidí MySQL list ve stromě pod Databazes, musí MySQL databázi nejprve zaregistrovat. Pravým tlačítkem myši klikněte na položku Databazes a, pokud máte vše ostatní správně nakonfigurované, jednou z nabídek bude "Register MySQL Server".

 
Odpovědět 24.7.2015 20:54
Avatar
polemes
Redaktor
Avatar
polemes:

Kdo chce MySQL hosting zdarma tak http://www.freemysqlhosting.net/

Odpovědět 15.11.2015 8:18
5 + 5 = 1010
Avatar
iqbigbang
Člen
Avatar
iqbigbang:

Jde se přes Javu připojit do databáze na serveru?

Odpovědět 5. března 16:35
Say me, why not?
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na iqbigbang
Taskkill:

ano, pro vetsinu db systemu existuje driver i do javy ... najdi si tutorial tady na siti a mas to za 15 minut cteni

 
Odpovědět  +1 5. března 17:16
Avatar
iqbigbang
Člen
Avatar
iqbigbang:

jaky tutorial?

Odpovědět 7. března 16:54
Say me, why not?
Avatar
Avev Frger
Člen
Avatar
Avev Frger:

XAMPP uz neobsahuje MySQL ale MariaDB bude to fungovat aj s MariaDB?

 
Odpovědět 20. srpna 16:39
Avatar
Odpovídá na Avev Frger
Lukáš Tesař:

Zkus to. Budeš si možná muset najít jiný driver, viz 3. díl tohoto tutoriálu.

 
Odpovědět 27. října 12:55
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 10 zpráv z 19. Zobrazit vše