将MySQL数据库对象与Java中的字符串进行比较
我正在开发一个程序来管理数据库中的学生,并且我正在研究学生可以登录的部分,但出于某种原因,我永远无法获得if声明是真实的。我认为这与我从数据库获取的值是一个对象而不是字符串有关。我试过把它转换为字符串,但我得到一个错误,是否有反正我可以比较这两个值?我的代码在下面,所以你可以看看。我知道还有其他类似的问题,但我无法获得任何解决方案。非常感谢提前。将MySQL数据库对象与Java中的字符串进行比较
public void actionPerformed(ActionEvent e)
{
//int i;
//String name;
if(e.getSource()==logInButton)
{
String name="";
String password="";
name=inputField.getText();
password=inputField2.getText();
try {
connection = DriverManager.getConnection(connectionString, username, pass);
PreparedStatement statement = (PreparedStatement) connection.prepareStatement("SELECT * FROM students");
data = statement.executeQuery();
while(data.next()){
//login = data.getObject("student_id").equals(name) && data.getObject("password").equals(password);
if(data.getObject("student_id").equals(name) && data.getObject("password").equals(password))
{
System.out.println("login = true");
logInPanel.setVisible(false);
postLogInPanel.setVisible(true);
}
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
而不是做的:
data.getObject("student_id");
尝试:
data.getString("student_id");
这是假设你的student_id数据字段是某种焦炭领域。你可能也想尝试使用
.equalsIgnoreCase //instead of .equals for username unless it is case sensitive...
首先你需要查询像
SELECT * FROM students where username='THE ENTER USERNAME' and password='Entered password'
数据库如果结果的大小设置== 1,则其他登录凭证无效或用户的比较没有按'退出...
对象的数据可以通过 data.getInt(“student_id”); ..
非常感谢! – user3082473 2014-12-01 19:32:50
如果它回答您的问题,请将其标记为正确,以便其他人可以直接引用:) – 2014-12-01 19:34:52
非常感谢! – user3082473 2014-12-01 19:32:26
欢迎您的光临,我可以帮助您! – brso05 2014-12-01 19:56:14