我正在尝试使用Mysql数据库中的电子邮件和密码进行简单的登录活动。
现在,我将电子邮件值设置为“e”,将密码设置为“e1”(以进行测试)。 然后我将它导入我的应用程序变成一个字符串,我检查密码和电子邮件是否为真:
res = st.executeQuery("SELECT * FROM Users WHERE Email = '"+emailVar+"' AND Password = '"+pswdVar+"' ");
while (res.next()) {
String pswdDb = res.getString("Password");
String emailDb = res.getString("Email");
if (emailVar == emailDb && pswdVar == pswdDb)
{
Intent I = new Intent (this, MainActivity.class);
startActivity(I);
}
但if语句总是返回false。
调试后,我看到数据库中的值和输入值相等。
我如何解决这个问题?
答案 0 :(得分:0)
在Java和Android中==
用于比较两个对象。要比较两个变量,你需要使用.equals()方法,如下所示,
if (emailVar.equals(emailDb) && pswdVar.equals(pswdDb))
{
Intent I = new Intent (this, MainActivity.class);
startActivity(I);
}
答案 1 :(得分:0)
使用equals方法比较Java中的字符串,而不是使用==运算符。
if (emailVar.equals(emailDb) && pswdVar.equals(pswdDb)){
Intent I = new Intent (this, MainActivity.class);
startActivity(I);
}