【发布时间】:2013-05-20 21:23:18
【问题描述】:
我正在构建一个检查用户角色的程序。当一个按钮被按下时,它使用用户 ID 来查询我们数据库的角色/组表。如果一个人不在角色/组表中,那么他们就是请求者。我有以下代码,想知道为什么最后一个 else if 语句不起作用。
当我们将一个人设置为请求者时,他们实际上会从角色/组表中删除。所以resultset 应该是空的。对吧?
ResultSet rs = stmt.executeQuery(getRolesQuery2.toString());
try
{
boolean empty = true;
while (rs.next())
{
empty = false;
userRole = rs.getInt(1);
userGroup = rs.getInt(2);
System.out.println("The Users Current Role/Group is: " +userRole+ "/" +userGroup);
if(userRole == 4 && userGroup == 1)
{
userRoleLbl.setText("The User Role/Group is: " +userRole+ "/" +userGroup+ " NDS Administrator");
}
else if(userRole == 1 && userGroup == 3)
{
userRoleLbl.setText("The User Role/Group is: " +userRole+ "/" +userGroup+ " Privacy Administrator");
}
else if(userRole == 1 && userGroup == 5)
{
userRoleLbl.setText("The User Role/Group is: " +userRole+ "/" +userGroup+ " Security Administrator");
}
else if(userRole == 1 && userGroup == 7)
{
userRoleLbl.setText("The User Role/Group is: " +userRole+ "/" +userGroup+ " ORD Administrator");
}
else if(userRole == 1 && userGroup == 9)
{
userRoleLbl.setText("The User Role/Group is: " +userRole+ "/" +userGroup+ " OEF-OIF Administrator");
}
else if(userRole == 1 && userGroup == 11)
{
userRoleLbl.setText("The User Role/Group is: " +userRole+ "/" +userGroup+ " Surgery Administrator");
}
else if(userRole == 1 && userGroup == 13)
{
userRoleLbl.setText("The User Role/Group is: " +userRole+ "/" +userGroup+ " Capri Administrator");
}
else if(userRole == 3 && userGroup == 15)
{
userRoleLbl.setText("The User Role/Group is: " +userRole+ "/" +userGroup+ " DART Super User");
}
//TODO: Add some handling for if the role/group is not present which means they are a requester
else if(empty)
{
userRoleLbl.setText("The User is a Requester");
}
}
【问题讨论】:
-
empty 在进入 while 循环时已设置为 false,并且不再设置,因此 if(empty) 永远不会为 true。
-
如果没有结果,会不会完全进入while循环?
-
我按照此处接受的答案中的步骤操作:stackoverflow.com/questions/2938812/…