我正在构建一个检查用户角色的程序。当一个按钮被按下时,它使用用户 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 = false;
在你的时间里
你应该在 while 之外检查这个值,这样如果你的结果集是空的,它就是 true
try
{
boolean empty = true;
while (rs.next())
{
//your if else
}
if(empty)
{
userRoleLbl.setText("The User is a Requester");
}
}
关于java - SQL 查询没有结果如何在我的程序中告诉用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16658631/