我是Java的初学者,我目前面临一个问题,我不确定如何获得资格。我正在尝试在我的应用中登录。这是我的代码的一部分:
PreparedStatement statement = connect.prepareStatement("SELECT `userName`,`password` FROM `member` ");
//creating a variable to execute query
ResultSet result = statement.executeQuery();
//while (result.next()) {
if (result.next()) {
if (result.getString("userName") != getUserNameTextField()) {
System.out.print("DB " + result.getString("userName") + " TF " + getUserNameTextField() + "\n");
System.out.print("Incorrect username");
//break;
} else if ......
}
没有编译器错误,项目在Eclipse中构建并成功运行。 我最初只测试用户名和密码是否匹配,然后成功登录;否则登录失败。由于我收到了不成功的登录输出,然后我尝试确定它是不正确的用户名或密码。输出指出它是用户名,由于我无法弄清楚我做错了什么,我决定打印从我的数据库中检索到的用户名和我在文本字段中输入的用户名。 Eclipse中控制台中print语句的结果如下:
DB Smith TF Smith
用户名不正确
从我的数据库中检索到的用户名是Smith,在文本字段中输入的用户名也是Smith,Eclipse中没有错误,所以现在我更加困惑。
我首先使用 while(result.next()){...登录验证码..} ;经过一些研究,我还尝试了 if(result.next()){do {..login validation code ..} while(result.next()} - 但我尝试的所有内容都是相同的Eclipse中的输出。
我有一种模糊的印象,我应该使用 while(result.next())本身,这个问题可能与Java内存模型(堆和堆栈)有关,但是我不确定。谁能指出我正确的方向?谢谢。