Java SQL a Derby – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Java SQL a Derby – Java – Fórum – Programujte.comJava SQL a Derby – Java – Fórum – Programujte.com

 

Aress
~ Anonymní uživatel
1 příspěvek
11. 5. 2010   #1
-
0
-

Ahoj mam v Jave tuto funkci:

public Film getPosledni() {
Film film = null;
try {
ResultSet rs = statement.executeQuery("SELECT FROM APP.FILMY WHERE F_ID = 100");
while(rs.next()) {
film = new Film(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getInt(5));
}

} catch (SQLException ex) {
ex.printStackTrace();
}
return film;
}

jedna se o funkci, ktera mi z tabulky vybere posledni polozku(ta na nejvyssi Id).
MAm problem vtom, jak hodnotu nejvyssiho ID predat(mam ji ulozenou jako int) .....?

Vim, ze existuje neco jako:
String queryString = "DELETE FROM APP.FILMY WHERE F_ID = ?";
preparedStatement = getConnection().prepareStatement(queryString);
preparedStatement.setInt(1, film.getId());

ale nevim, jak to implementovat do teto funkce....

Moc diky za rady :-)

Nahlásit jako SPAM
IP: 88.101.151.–
liborb
~ Redaktor
+18
Guru
12. 5. 2010   #2
-
0
-

Parametr executeQuery je String. Když něvíš, jak používat monst aparát na tvorbu query, tak pořád ještě můžeš ten String tvořit "ručně":



String q = new String();
Integer max = 1000;

q = "SELECT FROM APP.FILMY WHERE F_ID = " + max.toString();

Nahlásit jako SPAM
IP: 85.207.166.–
Pavel
~ Anonymní uživatel
383 příspěvků
12. 5. 2010   #3
-
0
-

To liborb :
jezis ja sem blbej to mi vubec nedoslo, ze to am muzu takhle "naprat" :-) .......

Moc diky

Nahlásit jako SPAM
IP: 88.101.151.–
Prog.0
Věrný člen
12. 5. 2010   #4
-
0
-

To Aress :
Pomocou PreparedStatement by si to mohol robiť takto, a pokial viem, je to aj odporúčaný spôsob:

PreparedStatement ps = con.prepareStatement("SELECT * FROM APP.FILMY WHERE F_ID = ?");

ps.setInt(1, max);
ResultSet rs =ps.executeQuery();
Myslím že hlavnou výhodou je, že sa argumenty správne ošetria. Okrem toho si ten preparedStatement môžeš uložiť a nemusíš ho vytvárať stále nanovo, čím sa aplikácia kapik zrýchli (ak voláš jeden statement často dokola len s inými argumentami).

Ja používam niečo také:
PreparedStatement ps = Statements.getSelectAllFromFilmyById();

ps.setInt(1, max);
ResultSet rs =ps.executeQuery();
Statements je v mojom prípade statická trieda, ktorej metódy mi vytvoria prepared statement ak ešte neexistuje, ak existuje, tak ho len vrátia.

Prípadne, si to vieš ešte zjednodusiť takto:
ResultSet rs = Statements.openSelectAllFromFilmyById(max);
To liborb :
Čo myslíš pod "monst aparát na tvorbu query" ?
Občas by som fakt potreboval poskladať stringove query (tak aby boli argumenty priamo vňom, aj správne ošetrené), no nikde som nezistil, ako na to.
Niektoré drivre podporujú niečo ako PreparedStatement.toString(), no keď som to potreboval, riešil som práve Derby, a tam som sa riešenia nedopátral.

Nahlásit jako SPAM
IP: 213.160.186.–
Prog.
Prog.0
Věrný člen
12. 5. 2010   #5
-
0
-

To Aress :
Pri Derby som sa tiež nedočítal, ako zvoliť default schému, tak aby nebolo potrebné písať APP.[TABULKA], nakoniec mi zafungovalo, hneď po pripojení zavolať:

conn = java.sql.DriverManager.getConnection("jdbc:derby://....");

conn.prepareCall("set schema APP").execute();
...
con.prepareStatement("select * from FILMY where F_ID = ?");

Nahlásit jako SPAM
IP: 213.160.186.–
Prog.
liborb
~ Redaktor
+18
Guru
12. 5. 2010   #6
-
0
-

To Prog. : Co myslím tím "monstr aparát"? Někdy mám pocit, že pokud na určitý problém neexistuje třída nebo alespoň funkce, tak je pro řadu lidí neřešitelný. Pro les nejsou vidět stromy. Na jednoduché problémy se pak chodí s kanónem. Tak jako v tomto případě. Ale jinak proti gustu ...

Nahlásit jako SPAM
IP: 85.207.166.–
Prog.0
Věrný člen
12. 5. 2010   #7
-
0
-

To liborb : Jasné, s tým súhlasim. Len som nejako nepochopil ten výraz "monstr", tak som myslel, že narážaš na niečo konkrétne :-)

Nahlásit jako SPAM
IP: 213.160.186.–
Prog.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Podobná vlákna

Java Derby - nefunguje — založil joe

Java + SQL — založil Tomas

Java a SQL — založil Nicolas

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý