私はWEBプロジェクトに取り組んでいます。ユーザーが登録できるようにしたいので、ユーザーが自分の詳細(ユーザー名、パスワード、ニックネームなど)を書いた後、conn.prepareStatementがエラーをスローする
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テーブル内のサーブレットで私が書いたように、ユーザ名または彼が入力されたニックネームは、(Usersテーブルに存在しない)一意です列username、ニックネームがあります。
問題は、それがコンソールに1を出力しますが、それは2を印刷したことがないということです、代わりに、それは印刷します
Syntax error: Encountered "=" at line 1, column 34.
私はすべての「=」サーブレットで上を見て、それらのすべてが右にあります構文!ヘルパーのための
感謝:)
は、完全なスタックトレースを追加 – Jens
は、私はそれをどのように行うことができます「=」 – desperateCoder
の前後にスペースを挿入してみてください? @Jens – user6561572