Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 3. diel - Databázy v Java JDBC - Výpis dát a parametre

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Odpovedá na Filip Něnička
Petr Štechmüller:14.10.2019 19:19

Tak mám pro tebe novniku: to co chceš, nelze aplikovat. Metody setString() + další takové slouží pouze pro nastavování hodnot do sloupečků.

Zde je o tom delší povídání.

You can't. You need to contruct the sql with string concatenation/pla­ceholder with String.format. prepared statement is for the column values not for table name.

Odpovedať
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Ondrej Mejzlik:3.11.2019 18:51

Ahoj, skoro celý den jsem se s trápil, prvně aby NetBeans viděl a mohl zasahovat do databáze MySQL a potom, aby se k databázi připojila třída. Pořád mi to házelo chyby, jako že není definovaný "server time zone" nebo naopak, že jsou víc jak jeden... Nakonec jsem to nějak rozchodil, tak to třeba někomu pomůže a nebo mi naopak napíšete, že to jde i jinak :-)

Databázi se mi povedlo připojit, až když jsem v sekci Services / Databases / Drivers / MySQL(Connector/j driver) do JDBC ULR doplnil:

jdbc:mysql://lo­calhost:3306/mys­ql?zeroDateTi­meBehavior=con­vertToNull

V rámci samotné třídy mi to začalo načítat hodnoty z databáze, až když jsem modifikoval řetězen na:

Connection spojeni = DriverManager­.getConnection("jdbc:mys­ql://localhos­t/slovnicek_db?u­seJDBCComplian­tTimezoneShif­t=true&useLega­cyDatetimeCode=fal­se&serverTime­zone=UTC&user=ro­ot&password=HES­LO");

Tak třeba to někomu pomůže :-)

Editované
Avatar
Jan Křížek:26.10.2021 19:01

Za mě vše v pohodě :)

Avatar
TomL
Člen
Avatar
TomL:17.2.2022 0:20

Při vytváření připojení vyberu driver (mysql-connector-java-8.0.28), ještě před dokončením konfigurace spojení otestuji (Test connection -> Connection succeeded). Pak přímo na vytvořené připojení zkusím SQL dotaz (ten, který je v programu: SELECT * FROM slovo), ukáže mi obsah tabulky a při spuštění programu:

Chyba při komunikaci s databází

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/slovnicek_db?user=root&password=root
        at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:706)
        at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:252)
        at cz.itnetwork.slovnicek.Slovnicek.main(Slovnicek.java:20)

Při debug to skočí z Connection spojeni (první řádek v resources u bloku try) na zachycení chyby. Chápu, že to nenašlo vhodný driver pro připojení, ale vyzkoušel jsem JDK17 a zulu 8.0.322+6, potom ještě stáhnul starší connector (ten ale neprošel testem spojení při úvodní konfiguraci spojení), teď jsem ještě zkusil JDK 11, ale pořád stejný výsledek. Vidíte prosím někde chybu?

Avatar
TomL
Člen
Avatar
Odpovedá na TomL
TomL:17.2.2022 0:42

Na začátku lekce jsem nebyl schopen najít záložku 'Library' v 'Properties' projektu (jsem v MacOS 12.0.1 a NetBeans IDE 12.6) - jen co je na obrázku. Našel jsem někde na webu, že lze knihovny přidat v NetBeans přes Tools -> Libraries, kde jsem dal 'New Library...', vytvořil název 'MySQL JDBC Driver' a pak k němu přidal už zmíněný 'mysql-connector-java-8.0.28'. Takže chápu, že chyba bude evidentně v tomto kroku - proto prosím o radu, zda víte, jak přidat tu knihovnu k projektu? (způsob z tutorialu mi nejde zrealizovat :-( )

Avatar
TomL
Člen
Avatar
Odpovedá na TomL
TomL:17.2.2022 22:09

Dnes vyřešeno. Protože jsem v Netbeans 12.6 u projektu nenašel záložku 'Libraries' (možná volím na samém začátku nějaký jiný typ projektu než autor článku - já dávám 'Java with Maven'), přidal jsem konektor přes pom.xml:

<dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>
    </dependencies>
Avatar
Attila Jančik:22.2.2022 15:14

a newindowsáci radši použijte :

Scanner scanner = new Scanner(System.in, StandardCharsets.UTF_8.name());
Odpovedať
čo zješ, to ti už nevezmú...
Avatar
Odpovedá na TomL
Kamila Miková:5.6.2022 22:20

děkuju moc, taky se s tím trápím několik hodin :D

Avatar
Adam Sochor
Člen
Avatar
Odpovedá na Kamila Miková
Adam Sochor:20.6.2022 19:29

Já toto řeším vytvoření aplikace Java with Ant, kde se v Properties záložka Libraries nachází. Žádné velké změny stejně jako v JavaFX oproti Mavenu nepociťuji. Akorát v novějších verzích NetBeans se Libraries liší, nyní se musí uvádět zvlášť modulpath (knihovna MySQL JDBC Driver) a classpath (jar soubor s konektorem). Jinak je článek fajn a vše mi funguje.

Avatar
Jan Růžička:29.6.2022 23:14

Řešil jsem obdobně, jako v předchozím komentáři. Zvolil jsem Java with Ant, zde se záložka Libraries nachází.
Poté kliknu na Libraries pravým, zvolím Properties.
Pak mi stačilo přidat pouze mysql-connector (soubor .jar) do Classpath.
Přiložil jsem obrázek, kde je zobrazeno, jak se v nové verzi NetBeans soubor .jar přidává.

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 31.