2016-04-12 6 views
0

Когда я пытаюсь запустить код ниже я получаю:MySQL ошибка синтаксиса при выполнении SQL запроса

У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с?? в строке 1`

String query="Select * from DB.Admin where username = ?"; 
PreparedStatement st=connection.prepareStatement(query); 
st.setString(1,request.getParameter("loginid")); 
ResultSet rst= st.executeQuery(query); 
int count=0; 
while(rst.next()){ 
    count++; 
} 

Пожалуйста, помогите мне в этом.

ответ

1

Вам необходимо удалить аргумент query из вашего звонка executeQuery. Если вы предоставите параметр, запрос будет выполнен без привязки каких-либо значений (подробности см. В разделе Statement) - поэтому синтаксис (т. Е. ?) недействителен.

Выполните запрос, как это:

ResultSet rst = st.executeQuery(); 

В качестве примечания: вы всегда должны обернуть Connection, PreparedStatement и ResultSet с примерочных с-ресурсами блок, например,

try (ResultSet rst = st.executeQuery()) { 
    // read the results 
} 

Таким образом, вы можете быть уверены, что ResultSet будет закрыт независимо от того, что происходит.

+0

Спасибо за советы ... это работает :) –