Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 4. diel - Databázy v Java JDBC - INSERT, UPDATE, DELETE a COUNT

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
Milan Gallas
Tvůrce
Avatar
Milan Gallas:22.4.2014 22:44

V tom příkladu - počet řádků máš SQL injekci. Přidáváš tam tabulku osoby přímo. Měl bys tu tabulku dosadit jako parametr metodou set.

 
Odpovedať
22.4.2014 22:44
Avatar
Milan Gallas
Tvůrce
Avatar
Milan Gallas:22.4.2014 22:53

Tak jsem to zkoušel a celkově mi dělá problém přidat tabulku jako parametr do sql dotazu. Mám jednoduchou metodu

public int count(String table) throws SQLException{
        PreparedStatement ps =
                connection.prepareStatement("SELECT * FROM ? WHERE id = ?");
        ps.setString(1, table);
        ps.setInt(2, 2);
       ResultSet result = ps.executeQuery();
         result.next();
        return result.getInt(1);
    }

Metoda je celkem nesmyslná. Ber to prostě jako příklad.

píše mi to, že mám syntatickou chybu v SQL poblíž - SELECT * FROM programatori WHERE id = 2

Editované 22.4.2014 22:54
 
Odpovedať
22.4.2014 22:53
Avatar
Matěj Kripner
Tvůrce
Avatar
Matěj Kripner:12.6.2014 15:50

Zdravím, co vše musím udělat pro to, abych mohl program spustit i na PC bez nainstalované databáze? Dík.

 
Odpovedať
12.6.2014 15:50
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Matěj Kripner
David Hartinger:12.6.2014 15:53

Musíš použít např. SQLite, která se nemusí instalovat.

Odpovedať
12.6.2014 15:53
New kid back on the block with a R.I.P
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovedá na Matěj Kripner
Milan Křepelka:12.6.2014 15:56

Existují databázové stroje které není potřeba instalovat

http://en.wikipedia.org/…ded_database

Zajímavá volba může být i

http://www.db4o.com/

Když člověk tak nějak nebazíruje na SQL

 
Odpovedať
12.6.2014 15:56
Avatar
Matěj Kripner
Tvůrce
Avatar
Odpovedá na David Hartinger
Matěj Kripner:12.6.2014 16:13

Dobře, děkuju :)

 
Odpovedať
12.6.2014 16:13
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovedá na Matěj Kripner
Milan Křepelka:13.6.2014 11:10

SQL Lite není dobrá volba jako databázový stroj. Ono je to opravdu až příliš mnoho Lite.

 
Odpovedať
13.6.2014 11:10
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Milan Křepelka
David Hartinger:13.6.2014 12:44

SQLite se používá docela dost, záleží na co ji chceš. Pro robustní firemní aplikaci je to špatná volba, ale pro nějakou jednoduchou evidenci naopak velmi dobrá.

Odpovedať
13.6.2014 12:44
New kid back on the block with a R.I.P
Avatar
santa580
Člen
Avatar
santa580:12.11.2015 14:10

Ahoj, mám problém s diakritikou, dělám si databazi jako svůj objekt a mám tento kod na zapis(stejný jako v tutorialu) a když slovíčko přídám je bez diakritiky např. (moře se mi napíše jako mo?e) áéíý funguje. Nevíte čím by to mohlo být?

 public void Zapis(String s1, String s2)
    {
        try (Connection spojeni = DriverManager.getConnection("jdbc:mysql://localhost/slovnicek_db?user=root&password=");
        PreparedStatement dotaz = spojeni.prepareStatement("INSERT INTO slovo (anglicky, cesky) VALUES (?, ?)");) {
        dotaz.setString(1, s1);
        dotaz.setString(2, s2);
            System.out.println(s1 + " " + s2);  //zkoušel jsem to vypsat do console, při vstupu chyba není..
        int radku = dotaz.executeUpdate();
        System.out.println(radku);
} catch (SQLException ex) {
        System.err.println("Do databáze se nepovedlo zapsat!" + ex);
}
    }
 
Odpovedať
12.11.2015 14:10
Avatar
santa580
Člen
Avatar
Odpovedá na santa580
santa580:14.11.2015 21:45

Ještě bych dodal že kodování mám v databázi nastavené na utf8_general_ci, fakt nikoho nenapadá čím by to mohlo být?

 
Odpovedať
14.11.2015 21:45
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ý!