Java 使用count登录桌面应用程序
当用户验证为“Admin”或“user”时,我试图调用一个页面,但似乎出现了问题Java 使用count登录桌面应用程序,java,mysql,swing,jdbc,Java,Mysql,Swing,Jdbc,当用户验证为“Admin”或“user”时,我试图调用一个页面,但似乎出现了问题 private void validateLogin() { if (getFieldData() == true) { username = txtname.getText(); String password = new String(txtpassword.getPassword()); Object type = cbType.getSelectedI
private void validateLogin() {
if (getFieldData() == true) {
username = txtname.getText();
String password = new String(txtpassword.getPassword());
Object type = cbType.getSelectedItem();
//validate login and password here.
//validity will be done by sending login/password to the database
String sql = "select count(*) from usermanagement where UserName='"
+ username + "' and " + "Password='" + password + "'";
ResultSet rs = datacon.queryTable(sql);
try {
rs.next();
if (rs.getInt(1) > 0) {
if (type.equals("Admin")) {
MainMenu mainmenu = new MainMenu();
this.dispose();
mainmenu.setVisible(true);
} else {
UserMenu usermenu = new UserMenu();
this.dispose();
usermenu.setVisible(true);
}
} else {
JOptionPane.showMessageDialog(this,
"Incorrect username or password or user category",
"Error", JOptionPane.ERROR_MESSAGE);
clearField();
txtname.requestFocusInWindow();
cbType.setSelectedIndex(0);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
我在这里没有看到您的输入、用户名和密码。最好附加日志,以了解异常状态对问题的影响 根据我在代码中看到的,这里是我的建议
- 您应该避免在您的sql上使用此
,因为特殊字符可能会破坏您的sql。我建议你坚持一些类似于预先准备好的声明UserName='“+UserName+”
- 最好遵循
检查记录是否存在。访问if(rs.next())
是不安全的,如果您没有任何匹配的记录,它可能会破坏您的应用程序rs.getInt(1)
{}
按钮。3) “这里似乎有问题…”什么问题?问题是什么?在我根据数据库输入验证后,即用户类别“Admin”或“User”用户名“timo”和密码“timo123”,它不会调用下一页,即主菜单或用户菜单,,,myt在'rs.next()'和'if(rs.getInt(1)>0)'thnks@Macon上的声明可能是错误的,当它带来错误时,username选项卡会给出用户在数据库中的编号,例如timo是编号3。。。我的每个用户都有一个Id…这就是为什么我使用rs.getInt(1)让我试试你在UserName='“+UserName+'”..@reggea上的建议。我建议你使用if(rs.next()&&&(rs.getInt(1)>0))@Macon ts这样的东西,仍然会给出相同的错误,thnks bdw而不是使用UserName='“+UserName+'”dyu建议我使用的,,引用用户名textbox@reggea请分享例外stacktrace@Macon它真正带来的是“不正确的用户名或密码或用户类别”,“错误”作为错误,它既没有给出我指定的任何异常,,,认为“if(rs.getInt(1)>0)”是导致调用MainMenu或UserMenu时出错的原因