Я работаю над проектом WEB, и я хочу включить для регистрации пользователя, поэтому после того, как пользователь напишет его данные (имя пользователя, пароль, псевдоним, ...), я хочу проверить, имя пользователя или псевдоним он вошел уникальны (не существует в таблице пользователей), так и в сервлет я писал:conn.prepareStatement throws the error
try {
Context context = new InitialContext();
BasicDataSource ds = (BasicDataSource) context
.lookup(getServletContext().getInitParameter(UAppConstants.DB_DATASOURCE) + UAppConstants.OPEN);
Connection conn = ds.getConnection();
PreparedStatement stmt;
try{
System.out.println("1");
stmt = conn.prepareStatement(UAppConstants.SELECT_USER_BY_NICKNAME_STMT);
System.out.println("2");
stmt.setString(1, _nickname);
//here some other code
}catch (SQLException e) {
System.err.println(e.getMessage());
}
//here some other code
}
catch (SQLException | NamingException e) {
getServletContext().log("Error while closing connection", e);
response.sendError(500);// internal server error
}
UAppConstant.java:
public final String SELECT_USER_BY_NAME_STMT = "SELECT * FROM USERS " + "WHERE username=?";
public final String SELECT_USER_BY_NICKNAME_STMT = "SELECT * FROM USERS" + "WHERE nickname=?";
и в таблице SQL есть имя пользователя, псевдоним.
проблема заключается в том, что она печатает 1 в консоли, но он никогда не печатает 2, вместо этого, он печатает:
Syntax error: Encountered "=" at line 1, column 34.
Я просмотрел все «=» в сервлет, и все они находятся в правом синтаксис!
Спасибо за хелперов :)
Добавить полный StackTrace пожалуйста – Jens
Попробуйте вставить пробелы вокруг «=» – desperateCoder
, как я могу это сделать? @Jens – user6561572