我正在使用Java创建一个登录框架/类,当有人输入用户名和密码时,我需要从我的SQL数据库中获取枚举值A,B或C.
我尝试创建一个新类来调用数据库,但我没有让它工作。我也试着在这堂课上打电话,但我也无法让它发挥作用。我一直在努力寻找它两天,但没有雪茄。你可以告诉我,我是一个新手。
我知道我必须在if语句中使用其他类似if (rs.next() && account_permission.tolowercase().equals("b"))
的内容。
我确实知道此代码只会打开管理框架,而不管其account_permissions / enum。
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
String sql = "select * from members where UserName = ? and Password = ?";
try {
pst = conn.prepareStatement(sql);
pst.setString(1, txtusername.getText());
pst.setString(2, txtpassword.getText());
rs = pst.executeQuery();
if (rs.next()) {
JOptionPane.showMessageDialog(null, "Username and password are correct");
AdminJFrame s = new AdminJFrame();
this.dispose();
s.setVisible(true);
}
else
JOptionPane.showMessageDialog(null, "Username and password did not match");
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
答案 0 :(得分:0)
首先是你的SQL。具体说明您选择的字段:
String sql = "select Role from members where UserName = ? and Password = ?";
我假设您持有A,B或C的字段称为Role
。
现在修改代码以检测正确的角色:
if (rs.next()) {
if ("B".equals(rs.getString("Role"))) {
JOptionPane.showMessageDialog(null, "Username and password are correct");
AdminJFrame s = new AdminJFrame();
this.dispose();
s.setVisible(true);
} else
JOptionPane.showMessageDialog(null, "You don't have the required role");
} else
JOptionPane.showMessageDialog(null, "Username and password did not match");