Java枚举用于跨类

Aus*_*tin 2 java enums enumeration class

我无法声明我可以在特定类的所有函数中使用的DB字段类型的枚举.使用以下代码,我得到"无法将USERNAME解析为变量类型":

public class SQL_access {

    public enum DBfields { BLANK, USERNAME, ID, PASSWORD, FIRSTNAME, LASTNAME }; 

    public boolean loginValidate( String username, String password ){

        String DBuser, DBpass;
        PreparedStatement table = connectToTable( "firstsql", "users");
        ResultSet row = table.executeQuery();;

        while(row.next()){
            DBuser = row.getString(USERNAME);
            if(DBuser.equals(username)){
                DBpass = row.getString(PASSWORD);
                break;
            }
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

jta*_*orn 6

你需要使用DBfields.USERNAME.

更新:

为了与getString(String)方法一起使用,您需要使用枚举的名称,如:Dbfields.USERNAME.name().

如果您仅使用枚举进行jdbc API访问,那么最好只使用String常量:

public static final String DBFIELD_USERNAME = "USERNAME";
Run Code Online (Sandbox Code Playgroud)