从java中的SQL数据库调用Enum值

时间:2015-02-21 22:09:52

标签: java mysql sql netbeans

我正在使用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);
    }
}

1 个答案:

答案 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");