我目前正在收到此错误:
java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROMusersWHERElogin='Pac1man' ANDpassword='220v'' at line 1
我需要做什么来解决它?
这是我的查询:
public void SignUpUser(User user){
String insert = "INSERT INTO " + Const.USER_TABLE + "(" + Const.USER_NAME + ","
+ Const.USER_SECONDNAME + "," + Const.USER_LOGIN + "," + Const.USER_PASSWORD + ")"
+ "VALUES(?,?,?,?)";
try {
PreparedStatement prSt = getDbConnection().prepareStatement(insert);
prSt.setString(1, user.getName());
prSt.setString(2, user.getSecondName());
prSt.setString(3, user.getUserName());
prSt.setString(4, user.getPasswordName());
prSt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public ResultSet getUser(User user){
ResultSet resSet = null;
String select = "SELECT * FROM" + Const.USER_TABLE + "WHERE" +
Const.USER_LOGIN + "=? AND" + Const.USER_PASSWORD + "=?";
try {
PreparedStatement prSt = getDbConnection().prepareStatement(select);
prSt.setString(1, user.getUserName());
prSt.setString(2, user.getPasswordName());
resSet = prSt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e){
e.printStackTrace();
}
return resSet;
}}
有积分吗?
答案 0 :(得分:1)
select
变量中有一个错误(缺少空格)。
试试这个:
String select = "SELECT * FROM " + Const.USER_TABLE + " WHERE " +
Const.USER_LOGIN + "=? AND " + Const.USER_PASSWORD + "=?";
答案 1 :(得分:0)
您的查询无效,因为您错过了添加空格的机会。
String select = "SELECT * FROM " + Const.USER_TABLE + " WHERE " +
Const.USER_LOGIN + "=? AND " + Const.USER_PASSWORD + "=?";
使用上面的代码,您的查询字符串变为
SELECT * FROM users WHERE login='Pac1man' AND password='220v'