JDBC- polecenie select pobierajace warunek z pola tekstowego

0

Witam.

Pierwszy raz mam do czynienia z JDBC i toworzę prostą aplikację okienkową w NetBeans.

Chciałabym dowiedzieć się jaką metodą a najchętniej zobaczyć przykład jak wyszukiwać z bazy danych wszytkie tutuły płyt które należą do danej kategorii muzycznej --> kategorie i płyty są w róznych tabelach.Nazwę kategorii wpisuję w pole teksotwe.
Pobieram wszystko z obu tabel a następnie porównuję instrukcją warnukową if czy pobrany z pola tekstowego string jest taki sam jak kategoria -- > nie skutkuje, w efekcie dostaję wszystkie płyty :(

1

Nie pobieraj wszystkiego z obu tabel. Poczytaj np. o warunku WHERE w SQL.

0

Wiem jak używać SELECT FROM WHERE , jednak warunek where jest zależny od tego co jest wpisane w JTextArea i nie potrafię połączyć tych 2-ch rzeczy niestety.
Dopisanie
(...) WHERE kategoria=pole.getText() nie skutkuje, dlatego szukam alternatywnych rozwiązań.

0

o_O żal.pl

String query = "select * from tabela where atrybut = "+pole.getText();
0
Shalom napisał(a):

o_O żal.pl

String query = "select * from tabela where atrybut = "+pole.getText();

o_O żal.pl to jest to, co napisałeś (sql injection).

Użyj PreparedStatement z parametrem.
http://docs.oracle.com/javase/6/docs/api/java/sql/.html
http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html

PreparedStatement ps = con.prepareStatement("select * from tabela where atrybut = ?");
ps.setString(1, pole.getText());
0

Krzysiek85 - dziękuję , właśnie takiej pomocy oczekiwałam.
Shalom : mało kto z mojego gimnazjum wie co to jest JDBC ale za to żal.pl też potrafią używać.Koniec bezproduktywnego zdania na forum dla programistów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1