2015-11-13 1 views
-1

Я хотел бы использовать Java переменные в SQL syntax.Please предложить ли его можно или not.Here мой кодИспользование Java переменные в Mysql, где положение

String Userid_input=request.getParameter("Userid");//I am getting dynamic input from User 

String Password_input=request.getParameter("Password"); 

Соединение с базой данных в настоящее время приведены ниже

Class.forName("com.mysql.jdbc.Driver"); 
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Proj_name","root","root"); 
Statement st=con.createStatement(); 
ResultSet rs=st.executeQuery("select User_type from Signup where User_name.User_name=Userid_input");//**Userid_input** is a java variable 

Я получаю следующее сообщение об ошибке,

Возникло исключение com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Неизвестный столбец 'Userid_input' в 'где п'

+0

' "выберите User_type из Signup где User_name.User_name =" + Userid_input'? – thegauravmahawar

ответ

0

Попробуйте это,

String query = "select User_type from Signup where User_name.User_name="+Userid_input; 
    ResultSet rs = st.executeQuery(query); 

Ориентир: https://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html

+0

Даже сейчас я получаю следующую ошибку: Exception occuredcom.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Неизвестный столбец 'Vijay' в 'where clause' // Здесь 'Vijay' - значение Userid_input – VijayManohar7

0

Попробуйте это:

ResultSet rs=st.executeQuery("select User_type from Signup where User_name=" + Userid_input); 
0

В качестве альтернативы вы можете использовать подготовленные заявления:

Строковый запрос = "SELECT U ser_type FROM Регистрация WHERE Имя_пользователя.User_name =? ";

PreparedStatement ps = conn.prepareStatement (query);

ps.setInt (1, Userid_input);

ResultSet rs = ps.executeQuery();

Подробнее о подготовленных заявлений http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html

+0

Я пробовал это до его появления, но даже тогда Я получаю исключение – VijayManohar7

+0

Тогда, возможно, имя столбца неверно, обратите внимание, что он чувствителен к регистру для Unix/Linux/Mac (но не для Windows). О, я только что понял User_name.User_name, скорее всего, неверно, если это не просто имя_пользователя, проверьте этот случай. – jasonlam604

 Смежные вопросы

  • Нет связанных вопросов^_^