com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Wystąpił błąd w składni SQL; sprawdź w instrukcji, która odpowiada Twojej wersji serwera MySQL, jaka jest właściwa składnia w pobliżu „? lub Nazwa Członka =?' w wierszu 1
MySQL nie rozumie znaczenia ?
w zapytaniu SQL. To rzeczywiście nieprawidłowa składnia SQL. Więc jakoś nie został zastąpiony przez PreparedStatement
. I wiecie co?
PreparedStatement s = conn.prepareStatement(query);
s.setInt(1, intValue);
s.setString(2, strValue);
rs = s.executeQuery(query); // Fail!
Zastępujesz przygotowane zapytanie oryginalnym zapytaniem! Musisz wywołać bezargumentowe PreparedStatement#executeQuery()
metoda zamiast Statement#executeQuery(String)
.
PreparedStatement s = conn.prepareStatement(query);
s.setInt(1, intValue);
s.setString(2, strValue);
rs = s.executeQuery(); // OK!
Niezwiązany z problemem, Twój kod przecieka zasoby. Baza danych wyczerpie się po kilku godzinach i aplikacja ulegnie awarii. Aby to naprawić, musisz postępować zgodnie z idiomem JDBC zamykania Connection
, Statement
i ResultSet
w finally
blok try
bloku, w którym zostały nabyte. Zapoznaj się z podstawowym samouczkiem JDBC
po więcej szczegółów.