Nullpointexeption по запросу базы данных - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть кнопка со следующим кодом.

 private void jLabel72MouseClicked(java.awt.event.MouseEvent evt) {                                      
    newtl = managertran.getSelectedItem().toString();
    vaup = va.toUpperCase();
    try {
        con2 = Connectionz.getConnection();//Connection Object
        pst4 = con2.prepareStatement("SELECT [VA #] FROM [Login_Users] WHERE [Full Name] =?");
        pst4.setString(1, newtl);
        rs4 = pst4.executeQuery();
        if (rs4.next()) {
            newtlva = rs4.getString("VA #");
            con2.close();

        } } 
     catch (Exception ex) {
                System.out.println("" + ex);
            }
    agentext = agentex1.getText();
    try {
        con2 = Connectionz2.getConnection();//Connection Object
        pst4 = con2.prepareStatement("SELECT * FROM [First_Entry] WHERE [VA_Agent] =?");
        pst4.setString(1, agentext);
        rs4 = pst4.executeQuery();
        if (rs4.next()) {
            exagentname = rs4.getString("Name_Agent");
            supername = rs4.getString("TL_Agent");
            con2.close();

        }
         } catch (Exception ex) {
        System.out.println("" + ex);
        JOptionPane.showMessageDialog(null, "No change was done, no entries were found.1");
    }       
        if (supername.equalsIgnoreCase(vaup)) {
            try {
                int yesorno2 = JOptionPane.showConfirmDialog(null, "Are you sure that you would like to change the user " + exagentname + " to the team lead " + newtl + "?", "exit", JOptionPane.YES_NO_OPTION);
                if (yesorno2 == 0) {
                    con2 = Connectionz2.getConnection();
                    String exchangeag = "UPDATE [First_Entry] SET [TL_Agent] =? WHERE [VA_Agent] =? AND [TL_Agent] =?";
                    con2 = Connectionz2.getConnection();
                    pst2 = con2.prepareStatement(exchangeag);
                    pst2.setString(1, newtlva);
                    pst2.setString(2, agentext);
                    pst2.setString(3, vaup);
                    pst2.execute();
                    JOptionPane.showMessageDialog(null, "Done!");
                                         agentex1.setText(" ");

                }
            } catch (HeadlessException | SQLException | NullPointerException ex) {
                System.out.println("" + ex);
                JOptionPane.showMessageDialog(null, "No change was done, no entries were found.");

                         }
        } else {
            JOptionPane.showMessageDialog(null, "You Don't have the enough privileges to change this agent");

        }

Чтобы возобновить код, идет в базу данных, собирает информацию о паре, предоставленную ранее с текстовым полем и комбинированным списком, и изменяет и обновляет другие записи, которые имеютусловие, ситуация в том, что не всегда база данных, которая должна быть обновлена, была создана пользователем, тогда он не может найти регистр, который должен обновиться, поэтому я получаю сообщение об ошибке исключения в потоке "AWT-

EventQueue-0" java.lang.NullPointerException
    at Signin_Panel.jLabel72MouseClicked(Signin_Panel.java:3994)

это строка

   if (supername.equalsIgnoreCase(vaup)) 

Я хотел бы иметь возможность отправить сообщение о том, что нет пользователя, что система не может выполнить действие, но я не могу поймать, гдеВозникло исключение, поэтому я не могу показать сообщение, я новичок в разработке, поэтому, пожалуйста, не торопитесь со мной, любые хорошие отзывы приветствуются! Спасибо!

1 Ответ

0 голосов
/ 16 ноября 2018

Не думаю, что это проблема с запросом. исключение нулевого указателя для этой функции supername.equalsIgnoreCase (vaup) , поэтому вам необходимо проверить, каково значение этой функции и, в частности, значение vaup ( vaup = va.toUpperCase (); , является ли va ненулевым?)

С уважением

...