V tomto kurzu si ukážeme, jak se dotazovat na data z MySQL pomocí objektů JDBC Statement a ResultSet.
Pro dotazování na data z MySQL je nejprve nutné navázat spojení s MySQL pomocí objektu Connection.
Code language: Java (java)
Vyvinuli jsme obslužnou třídu MySQLJDBCUtil, která otevře nové spojení s parametry databáze uloženými v souboru vlastností.
Code language: Java (java)
Po otevření spojení je třeba vytvořit objekt Statement. JDBC poskytuje několik druhů příkazů, například Statement, PreparedStatement a CallableStatement. Pro dotazování na data stačí použít objekt Statement následujícím způsobem:
Code language: Java (java)
Jakmile máte vytvořený objekt Statement, můžete jej použít k provedení libovolného platného dotazu MySQL, například takto:
Volali jsme metodu executeQuery()
objektu Statement. Tato metoda vrací objekt ResultSet, který obsahuje výsledek SQL dotazu. Výsledek je ve formě řádků se sloupci dat na základě příkazu SELECT.
Objekt ResultSet poskytuje metody pro procházení výsledku a čtení dat. Metoda next()
vrací true a přechází na další řádek v ResultSet, pokud jsou k dispozici řádky, jinak vrací false. Metodu next()
musíte zavolat alespoň jednou před načtením dat, protože před prvním voláním next()
se ResultSet nachází před prvním řádkem.
Pro získání dat sloupce aktuálního řádku použijete metodu getDataType()
, kde DataType je datový typ sloupce, např. int, string, double apod, Metodě getDataType() musíte předat název nebo index sloupce, například:
Code language: Java (java)
Chcete-li získat data z kandidátní sady ResultSet, postupujete takto:
Po dokončení procházení dat byste měli objekty ResultSet a Statement vždy uzavřít voláním metody close()
.
Code language: Java (java)
Použijete-li příkaz try-with-resource, metoda close()
se zavolá automaticky, takže to nemusíte dělat explicitně. Následuje kompletní příklad dotazování na data z tabulky candidates
v naší ukázkové databázi.
Výstup programu je následující:
V tomto návodu jsme si ukázali, jak pomocí jednoduchého příkazu SQL dotazovat data z MySQL.
- Pomohl vám tento návod?
- AnoNe