我最近正在制作一个javaweb应用程序,它必须关注crud(你知道的)。但是我被读、更新和删除操作(三个操作)困住了。只有创建操作才能正常工作。具体来说,我正在开发的javaweb应用程序到目前为止还没有完成。在我的代码中,名为“findusers”的函数用于实现读取操作。顺便说一下,我已经检查了很长一段时间的代码。我猜问题可能出在findusers函数中(不确定,只是一个假设)。每次我试图键入r来调用该函数时,netbeans都会返回“user does not exist”。我不知道为什么。数据库连接成功。在这里输入图片描述这张照片是我的数据库结构。
数据库管理器.java
//read operation
public User findUsers(String email, String password) throws SQLException {
String sqll = "SELECT * FROM XWB.USERS WHERE EMAIL = ' " + email + " ' AND PASSWORD = ' " + password + " ' ";
// " SELECT * FROM XWB.USERS WHERE EMAIL = ' " + email + " ' AND PASSWORD = ' " + password + " ' ";
//select * from XWB.Users where EMAIL = 'TargetEmail' and PASSWORD = 'TargetPassword';
ResultSet rs = st.executeQuery(sqll);
while (rs.next()) {
String UserEmail = rs.getString("EMAIL");
String UserPassword = rs.getString("PASSWORD");
if (UserEmail.equals(email) && UserPassword.equals(password)) {
String UserName = rs.getString("NAME");
String UserGender = rs.getString("GENDER");
String UserColor = rs.getString("FAVOURITECOLOR");
return new User(UserEmail, UserName, UserPassword, UserGender, UserColor);
}
}
return null;
}
java(我使用这个类来测试dbmanager)
// findUsers()
private void testRead() throws SQLException {
System.out.print("User email: ");
String email = in.nextLine();
System.out.print("User password: ");
String password = in.nextLine();
User user = db.findUsers(email, password); // returns nothing
//System.out.println(user);
if( user != null) {
System.out.println("User " + user.getName() + " exists in the database.");
}else { //user == null
System.out.println("User does not exit.");
}
}
这是我从netbeans得到的结果。它总是告诉我“用户不存在”在此处输入图像描述
2条答案
按热度按时间t0ybt7op1#
我认为,如果您的电子邮件和密码的数据值是正确的,您应该删除[']字符前后的空格。您的代码:
替换:
ctehm74n2#
在你的代码里
return null
所以当这个在你的呼叫课上收到支票的时候if( user != null)
将返回false和else
你生活的一部分if-statement
将被执行。因此要克服以下更改:您的方法如下所示: