Java SQLite在比较两个密码时,如果它们不匹配,而sysout正确打印它们
我正在建立一个包含用户及其密码的数据库。我有一个用JFX8制作的gui,使用intellij IDE 我已经成功地从数据库中提取了代码,只有在将它们与if x==x进行比较时,我才收到错误的密码消息Java SQLite在比较两个密码时,如果它们不匹配,而sysout正确打印它们,java,sql,javafx,sqlite,Java,Sql,Javafx,Sqlite,我正在建立一个包含用户及其密码的数据库。我有一个用JFX8制作的gui,使用intellij IDE 我已经成功地从数据库中提取了代码,只有在将它们与if x==x进行比较时,我才收到错误的密码消息 try { Connection conn = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\user\\Desktop\\java\\Java\\Just Messing Around\\MessyDB.db");
try {
Connection conn = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\user\\Desktop\\java\\Java\\Just Messing Around\\MessyDB.db");
System.out.println("DB Connected");
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("SELECT * FROM UserDB WHERE Tab = " + tabelis);
while (rs.next()){
int id = rs.getInt("ID");
String name = rs.getString("Name");
int tab = rs.getInt("Tab");
String DBpassword = rs.getString("Password");
float right = rs.getFloat("Right");
System.out.println("********************");
System.out.println("********************");
System.out.println( "ID = " + id );
System.out.println( "Name = " + name );
System.out.println( "Tab = " + tab );
System.out.println( "Password = " + DBpassword );
System.out.println( "Right = " + right );
System.out.println();
String password1 = pfPassword.getText();
String password2 = DBpassword;
if (password1 == password2){
System.out.println("**************");
System.out.println("if statement ok");
Parent mainMenuParent = FXMLLoader.load(getClass().getResource("MainMenu.fxml"));
Scene mainMenuScene = new Scene(mainMenuParent);
Stage appStage = (Stage) ((Node) event.getSource()).getScene().getWindow();
appStage.setScene(mainMenuScene);
appStage.show();
statement.close();
conn.close();
}else{
System.out.println(pfPassword.getText() + " " + DBpassword);
System.out.println("wrong password");
statement.close();
conn.close();
}
在sys out In else中,在if语句之后,它将打印相同的密码
其他系统输出:
lel lel错误密码
Java中的字符串是对象!您正在尝试检查两个内容相同的不同字符串对象是否相等。除非重写String类的equals方法(这是不容易做到的),否则这在Java中根本不起作用。 要检查字符串值(!)是否相等,请使用
password1.equals(password2)
Java中的字符串是对象!您正在尝试检查两个内容相同的不同字符串对象是否相等。除非重写String类的equals方法(这是不容易做到的),否则这在Java中根本不起作用。 要检查字符串值(!)是否相等,请使用
password1.equals(password2)
试试
password1.equals(password2)
。试试password1.equals(password2)
。谢谢!我觉得有点傻:)谢谢你!我觉得有点傻:)