我需要以下错误的帮助。下面是方法retrievePassword()。我对它进行了编程,以便在调用Clickid时,我也可以检索所有其他数据。
public boolean retrievePassword() {
// declare local variables
boolean success = false;
ResultSet rs = null;
DBController db = new DBController();
// step 1 of using DBController, passing data source name setup during last practical
db.setUp("myDatabase");
// declare the SQL
String dbQuery = "SELECT Clickid FROM PROFILE WHERE Clickid = '" + clickId + "'" ;
// step 2 of using DBCcontroller, for retrieve SQL use readRequest method
rs = db.readRequest(dbQuery);
try{
if (rs.next()){
firstName = rs.getString("Firstname");
lastName = rs.getString("LastName");
password = rs.getString("Password");
email = rs.getString("Email");
success = true;
}
}
catch (Exception e) {
e.printStackTrace();
}
db.terminate();
return success;
}
我检查过并且所有列名都正确无误。我认为问题在于上述方法或下面的实例化
String first = jTextFieldFirst.getText();
String email = jTextFieldEmail.getText();
Profile p2 = new Profile(jTextFieldId.getText());
p2.retrievePassword();
String firstName = p2.getFirstName();
String email2 = p2.getEmail();
if(email == email2 && first == firstName)
JOptionPane.showMessageDialog(null, "Your Password is "+p2.getPassword(),
"Retrieve Password",JOptionPane.INFORMATION_MESSAGE);
else
JOptionPane.showMessageDialog(null, "Some information you entered is incorrect", "Retrieve Password",JOptionPane.INFORMATION_MESSAGE);
当我编译并输入相应字段时,错误“未找到列”会一直显示。我确保列名和数据是正确的,但我有更多的列,我没有包含在retrievePassword()方法中。我确信这两种方法中的任何一种似乎都是问题,但无论我怎么做,我似乎无法解决它。某种灵魂会帮助我吗?请?
答案 0 :(得分:5)
您的查询看起来只选择ClickId字段,但在您的搜索结果中,您尝试获取其他字段。将SELECT *或SELECT与您需要的字段一起使用。
答案 1 :(得分:1)
这是正确的,如果您要从结果集中使用它们,则需要在选择查询中检索FirstName,LastName,Email和Password。
答案 2 :(得分:1)
您只选择clickid列。 尝试 从个人资料中选择* 或者更好地使用列表。
答案 3 :(得分:0)
嘿所有,我做了你们所说的并选择了所有专栏,这是成功的。但是当我实现下面的方法时
String first = jTextFieldFirst.getText();
String email = jTextFieldEmail.getText();
Profile p2 = new Profile(jTextFieldId.getText());
p2.retrievePassword();
String firstName = p2.getFirstName();
String email2 = p2.getEmail();
if(email == email2 && first == firstName)
JOptionPane.showMessageDialog(null, "Your Password is "+p2.getPassword(),
"Retrieve Password",JOptionPane.INFORMATION_MESSAGE);
else
JOptionPane.showMessageDialog(null, "Some information you entered is incorrect", "Retrieve Password",JOptionPane.INFORMATION_MESSAGE);
它一直显示来自else循环的jOptionPane。当我输入正确的字段时,我需要的是实际获取if循环=(。感谢您的所有帮助=)