java - SQL 查询没有结果如何在我的程序中告诉用户

标签 java sql

我正在构建一个检查用户角色的程序。当一个按钮被按下时,它使用用户 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/

相关文章:

java - mp3 播放几次后就停止播放?

java - 在 Java 中将二维整数数组转换为位图

MySQL : combine multiple row into one row

java - 当 pageable.size = 1 时,具有可分页、连接表的 JPA 存储库 nativeQuery 不起作用

php - 在 PHP 中执行不带参数的存储过程

mysql - 无法使用 SQL 选择不同位置的平均分数

java - XMLBeam 的默认值

转换后的 Maven 项目中文件的 JavaFx InvocationTargetException

java - 如何只读电影名称?

mysql - 无法创建/写入文件(错误代码 : 22)