从 java 内的 SQL 数据库调用枚举值

Calling an Enum value from an SQL database inside java

我正在使用 Java 登录 frame/class,当有人输入用户名和密码时,我需要从我的 SQL 数据库中获取枚举值 A、B 或 C .

我试图创建一个新的 class 来调用数据库,但没有成功。我也尝试在此 class 中进行调用,但我也无法使其正常工作。两天来我一直在努力查找它,但没有雪茄。正如你所知道的,我是一个新手。

我知道我必须在 if 语句中使用类似 else 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);
    }
}

首先是您的 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");