IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

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
Avatar
milos
Nevyplnené
Avatar
milos:3.1.2014 16:57

ahoj, super, je vidět, že tě publikování baví.

Chtělo by jen připomenout, že reálná aplikace nevytváří spojení pro každý dotaz extra, ale uschová si ho, koneckonců i často používané PreparedStatement-s.
fandím, ahoj

 
Odpovedať
3.1.2014 16:57
Avatar
Silvinios
Tvůrce
Avatar
Silvinios:3.1.2014 19:14

Pěkný článek.

Ještě bych dodal, že jméno a heslo se při vytváření spojení nemusí zadávat do do url, pokud se použije metoda DriverManager­.getConnection(Strin­g, String, String):

DriverManager.getConnection("jdbc:mysql://localhost/slovnicek_db", "root", "");
 
Odpovedať
3.1.2014 19:14
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na
David Hartinger:9.1.2014 18:55

Tutoriál byl myšlený hlavně jako příprava pro webovou Javu, kde se spojení opravdu vždy otevírá a zavírá, server si to potom řídí v poolu.

Odpovedať
9.1.2014 18:55
New kid back on the block with a R.I.P
Avatar
firuz.gaffar
Člen
Avatar
firuz.gaffar:2.5.2014 9:37

pekny clanek,
ale me to nefunguje, vychazuje vyjimku "Chyba při komunikaci s databází". v cem muze byt problem?

 
Odpovedať
2.5.2014 9:37
Avatar
firuz.gaffar
Člen
Avatar
Odpovedá na firuz.gaffar
firuz.gaffar:2.5.2014 9:45

uz jsem to vyresil, diky

 
Odpovedať
2.5.2014 9:45
Avatar
vrciak1
Člen
Avatar
vrciak1:13.5.2014 14:56

Mam problem pri preklade. Vypisuje sa mi chybova hlaska

Sql Exception: No suitable driver found for jdbc:sqlserver://localhost:1433;databaseName=slovnicek;user=sa;password=123;

Moj kod:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

public class Skuska2 {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("Zadaj slovicko, ktore chces prelozit: ");
        String slovicko = sc.nextLine();

        try ( Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;"
                    + "databaseName=slovnicek;user=sa;password=123;");
                PreparedStatement dotaz = con.prepareStatement("SELECT cesky "
                        + "FROM slovo WHERE anglicky");){
            dotaz.setString(1, slovicko);
            try (ResultSet vysledok = dotaz.executeQuery()){
                vysledok.next();
                String cesky = vysledok.getString("cesky");
                System.out.println("Preklad: " + slovicko + ": " + cesky);
            }
        } catch (SQLException sqle){
            System.out.println("Sql Exception: " + sqle.getMessage());
        }
    }

}

Kde mam chybu?

Editované 13.5.2014 14:58
 
Odpovedať
13.5.2014 14:56
Avatar
vrciak1
Člen
Avatar
Odpovedá na vrciak1
vrciak1:13.5.2014 15:02

Podotykam, ze som to skusal aj s otaznikom. Mozno je to preto, lebo databazu mam vytvorenu v sql serveri a je tam iny dotaz ako v mysql, ale malo by to byt rovnake.

 
Odpovedať
13.5.2014 15:02
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na vrciak1
David Hartinger:13.5.2014 21:00

Tak zaprvé si přečti tu chybovou hlášku. Dost jasně ti říká, že nemá driver pro databázi sqlserver. Taková databáze totiž není. Zadruhé si přečti tu část článku, kde se připojuje k databázi, protože máš ten řetězec špatně.

EDIT: Koukám, že sqlserver označuje databázi MS SQL Server, potom si stahni příslušný ovladač ze stránek výrobce.

Editované 13.5.2014 21:28
Odpovedať
13.5.2014 21:00
New kid back on the block with a R.I.P
Avatar
vrciak1
Člen
Avatar
Odpovedá na David Hartinger
vrciak1:14.5.2014 13:43

Vdaka. Uz som to rozbehal. Zabudol som nakopirovat jdbc do kniznice.

 
Odpovedať
14.5.2014 13:43
Avatar
Neaktivní uživatel:25.6.2014 8:40

Ahoj Davide,
mám otázku na hlubší fungování těhle příkazů, jak přesně se to za sebou chronologicky spouští? K zabezpečené verzi:
zeptá se mne na slovo, nascanuje, uloží do anglicky, v bloku try se pokusí připojit k databázi to teda dělá hned jak je to napsaný, a teď nerozumím jedné věci, ono to už teď volá "dotaz"? protože jestli jo k čemu by to bylo když ho až o řádek níže měníme...vyvozuju že ještě "dotaz" nezavolá...tipl bych, že všechno se to spouští až v druhém bloku try ale nevím přesně jak a hlavně mě nedává smysl jak přinutíš javu aby vlezla zrovna na tu správnou pozici ...myslel jsem že metodu .next() můžeš volat jen v cyklu...kdybys mi to osvětlil byl bych vděčnej.

Odpovedať
25.6.2014 8:40
Neaktivní uživatelský účet
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.

Zatiaľ nikto nevložil komentár - buď prvý!