我正在创建非常简单的 ATM 机。我有 MySQL 数据库,其中包含以下列:登录 ID、密码、金钱。我想更改我的方法,该方法可以在开始时验证登录名和密码的正确性(并在此之后执行某些操作)。所以如果登录名和密码正确,那么我想收到“登录成功”或“登录不成功”的消息。现在我总是收到“登录成功”的消息。我该如何更改它?
public static void post () throws Exception{
Scanner sc = new Scanner(System.in);
System.out.println ("please enter user id:");
String userId = sc.nextLine();
System.out.println("please enter password:");
String pass = sc.nextLine();
System.out.println("how much you want to put");
int money = sc.nextInt();
try {
Connection con = ConnectionDB.getConnection();
String sql = "UPDATE `BankDB`.`Info` SET `Money`= ? WHERE `ClientID`= ? AND `ClientPass` = ?";
PreparedStatement posted = con.prepareStatement(sql);
posted.setInt(1, money);
posted.setString(2, userId);
posted.setString(3, pass);
posted.executeUpdate();
con.close();
} catch (Exception e) {
e.printStackTrace();
} finally{
System.out.println("Login was succesful");
}
}
最佳答案
如果我对问题的理解是有效的,您需要检查更新命令是否确实更新了数据库中的某些内容。
在这种情况下,您需要从 posted.executeUpdate()
获取结果。如果大于零,则更新数据库中更新的记录,并且用户名/密码正确。
关于java - 如何验证 JDBC 登录名/密码的正确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45222374/