下面的代码有什么问题吗?
String sql =“SELECT用户名,密码FROM REGCUSTOMERS”+“WHERE username =?AND password =?”;
我正在尝试从REGCUSTOMERS表的用户名和密码列中获取数据。
Eclipse错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以便在'=附近使用正确的语法?和密码=?'在第1行
private boolean isAuthenticated(String userid, String password) {
// JDBC logic to verify from database.
try {
Class.forName(driverName);
Connection conn = null;
PreparedStatement st = null;
String sql = "SELECT username, password FROM REGCUSTOMERS" + "WHERE username = ? AND password = ?";
conn = DriverManager.getConnection(databaseURL, USERNAME, PASSWORD);
st = conn.prepareStatement(sql);
ResultSet rs = st.executeQuery(sql);
if (rs.getString("username") != userid && rs.getString("password") != password) {
return false;
}
rs.close();
st.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
答案 0 :(得分:2)
REGCUSTOMERS和WHERE之间没有空格。添加空间,你应该没事:
String sql = "SELECT username, password FROM REGCUSTOMERS " + "WHERE username = ? AND password = ?";
答案 1 :(得分:1)
这部分:
... FROM REGCUSTOMERS" + "WHERE username ...
将导致以下SQL:
FROM REGCUSTOMERSWHERE
那当然是错的。
+
在那里没有意义,但如果你想要它,你至少需要一个空间
"... FROM REGCUSTOMERS " + "WHERE username ..."