gpt4 book ai didi

java if语句测试输出错误

转载 作者:行者123 更新时间:2023-12-02 07:13:14 26 4
gpt4 key购买 nike

我有一个连接到数据库后端的小型 java 项目。我有一个登录功能,但是当我将其放入测试工具中时,我无法让它为我提供正确的输出。

public boolean validateLogin(User validate) {
{
Connection conn = null;

String dbUserName = "root"; // MySQL database username
String dbPassword = "nbuser"; // MySQL database password


boolean returnValue = false;

String dbUrl = "jdbc:mysql://localhost:3306/project";

try {
Class forNam = Class.forName("com.mysql.jdbc.Driver");

try {

forNam.newInstance();
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
}
} catch (ClassNotFoundException ex) {
}

try {

conn = DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
System.out.println("Database connection establish...!");

Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM login_register WHERE user_id='" + validate.getUserID() + "'");
if (rs.next()) {
if (rs.getString(2).equals(validate.getUserPassword())) {
System.out.println("User and Password Match");
} else {
System.out.println("No User Or Password Match");
}
}
else {
System.out.println("No User Or Password Match");
}

} catch (SQLException ex) {
System.out.println("Cannot connect to database server...!!");

} finally {
if (conn != null) {
try {

conn.close();
System.out.println("Database connection terminated...!!!");
returnValue = true;
} catch (SQLException ex) {
}
}
}
return returnValue;

}
}

现在我的测试代码来看看这个语句是否有效

User testLogin = new User();
testLogin.setUserID("userid");
testLogin.setUserPassword("password");
if (test.validateLogin(testLogin)) {
System.out.println("User logged in");
}
else {
System.out.println("Failed to login");
}

上面的两条信息都在我的数据库中,所以我在 IDE 中的输出如下:

Database connection establish...!
User and Password Match
Database connection terminated...!!!
User logged in

但是如果我将值更改为数据库中没有的值

Database connection establish...!
No User Or Password Match
Database connection terminated...!!!
User logged in

所以问题出在我的测试代码中,当值不匹配时,我无法让它说它们不匹配,这是我稍后在工作中需要的函数。如果我的测试端的 id 和密码不匹配,我需要对测试代码进行哪些更改才能显示“登录失败”

最佳答案

试试这个

if (rs.getString(2).equals(validate.getUserPassword())) {
System.out.println("User and Password Match");
returnValue =true;
} else {
System.out.println("No User Or Password Match");
returnValue =false;
}

并从finally block 中删除returnValue =true;

关于java if语句测试输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15245263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com