На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
  
> Java + Sql , postgree
    Вообщем есть такой вопрос. Я не знаю, как его корректо задать без ПОЛНОГО кода, но всё же попытаюсь. есть метод, который по нажатию кнопки должен добавлять в БД сервера Юзера. Естественно, коннект работает, проверяли. Добавление из консоли так же работает. Проверяли. а вот через форму не работает. Причём выдаёт : Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Authorization.InsertUser.actionPerformed(Workspace.java:131)
    как я понимаю, выброшено прерывание в строчке 131

    ВОт метод, срабатывающий по нажатию кнопки:

    ExpandedWrap disabled
       public void actionPerformed(ActionEvent e)
           {
            
            try{
             DB_root cd = new DB_root();
             Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
             ResultSet rs;
             //Creates users table
             if (!cd.TableExists("users", conn))
             {
              System.out.println("Create table Users "+
                !st.execute("CREATE TABLE Users ( " +
                 "Id INT PRIMARY KEY," +
                 " Name CHAR(20) ," +
                 " SurName CHAR(20)," +
                 " TNumber CHAR(9),"));
              id =1;
             }else
             {
               rs =  st.executeQuery("SELECT id FROM users");
               rs.last();
               id= rs.getInt(1)+1;
               rs.close();
             }
              query = "INSERT INTO Users VALUES ('"+id+"' , '"+name.getText()+"' , '"+sname.getText()+"' , '"+tel.getText()+"')";  
              //Id_text.setText("Added. ID: "+id);
              System.out.println("Add "+!st.execute(query)+" id: "+id);
                
            
            }
            catch (SQLException e1)
            {
             System.out.println("InsertUser");
             e1.printStackTrace();
            }
            
           }


    Честно говоря, тяжело понять, что не верно. ВОзможно ошибка идёт при взаимодействии между пакетами? ПОтому что коннект к серверу лежит в другом пакете. (Fill_Up_Table/DB_root) - но я его подключаю. Я понимаю, что без всего кода трудно понять, что к чему, но его там очень много
      Nort0n, а какая строчка 131??? :)
        ExpandedWrap disabled
           " TNumber CHAR(9),"));
                  id =1;
                 }else   // 131
                 {
          Даже не знаю, каким чудом эксепшен может лететь в строке с else. Я по крайней мере ничего не могу сказать и того куска кода, что ты выложил :(
            я подозреваю, что это глюк драйвера. сейчас, попытаюсь разобраться

            я приложу зипушник проекта, к сообщению. но без драйвера и вставшего postgree работать то всёравно не будет

            проект - сырцы, разрозненные куски и каменты, так что прошу строго не судить. коннект работал по крайней мере вчера :)
            Сообщение отредактировано: Nort0n -

            Прикреплённый файлПрикреплённый файлDataBase.zip (14.58 Кбайт, скачиваний: 59)
              1) скачал код, 131 строка это пустая строка, а не else.
              И вообще приведенного куска кода в посте №3 в исходниках нет.

              2) вы хоть какую-нибудь книжку бы по джаве почитали, как что называть, зачем классы нужны..

              3) дебаггером проходить пробовали?
                Да, кстати, Nort0n, подтверждаю, 131 строчка - пустая, вы уж там как-нить определитесь, хотя бы в какой строчке летит эксепшн :)
                  ExpandedWrap disabled
                    И вообще приведенного куска кода в посте №3 в исходниках нет.


                  :blink: подтверждаю, но приведённый кусок кода это чуть модифицированный метод ActionPerformed. оба должны работать

                  ExpandedWrap disabled
                    2) вы хоть какую-нибудь книжку бы по джаве почитали, как что называть, зачем классы нужны..


                  заколебали. вы думаете я написал всё это с нуля, не читая никаких книжек по джаве?

                  ExpandedWrap disabled
                    3) дебаггером проходить пробовали?

                  пробовали.

                  ExpandedWrap disabled
                    Да, кстати, Nort0n, подтверждаю, 131 строчка - пустая, вы уж там как-нить определитесь, хотя бы в какой строчке летит эксепшн

                  я же не с потолка взял эту цифру. у меня при компилляции ексепшн летит в строке 131.
                  если она пустая, тогда скажите мне, в каких сслучаях возможно возникновение прерывания в пустой строчке кода
                  Сообщение отредактировано: Nort0n -
                    Цитата Nort0n @
                    я же не с потолка взял эту цифру. у меня при компилляции ексепшн летит в строке 131.
                    если она пустая, тогда скажите мне, в каких сслучаях возможно возникновение прерывания в пустой строчке кода

                    значит это мистика и проблема решается исключительно через пляски с бубном
                    а вообще вы уверены, что вы приложили именно тот код, ошибку от которого дали? откройте свой же архив у себя и сверьте количество пустых строк. кстати, а таблица существует? иначе query1 у вас равна "".
                      Поставте:
                      System.out.println( cd+" "+st+" "+conn);
                      перед первым ифом.
                        ExpandedWrap disabled
                          а вообще вы уверены, что вы приложили именно тот код, ошибку от которого дали? откройте свой же архив у себя и сверьте количество пустых строк. кстати, а таблица существует? иначе query1 у вас равна "".


                        нет, приложен старый проект. извиняюсь, сейчас исправлю ошибку.
                        таблица прверяется на существование первым ифом

                        ExpandedWrap disabled
                          Поставте:
                          System.out.println( cd+" "+st+" "+conn);
                          перед первым ифом.


                        ничего не вывел
                        Сообщение отредактировано: Nort0n -

                        Прикреплённый файлПрикреплённый файлProject.zip (16.38 Кбайт, скачиваний: 47)
                          Цитата Nort0n @
                          пробовали.

                          и каков результат? в каком мой вылетело исключение, какой объект был null?


                          Цитата Nort0n @
                          заколебали. вы думаете я написал всё это с нуля, не читая никаких книжек по джаве?

                          может и читали, но явно поняли не все, или вы считаете, что в вашем коде очень приятно разбираться? Разбили бы все классы на отдельные файлы, авось и сами бы ошибку уже нашли
                            Nort0n, твой код я пока не запустил (времени маловато), но к вечеру постараюсь его переделать. Код у тебя, уж прости, плохой. Во-первых, ты не соблюдаешь соглашения об именовании. Имена переменных и методов должны начинаться с маленькой буквы, если в имени используются несколько слов - они выделяются заглавными буквами. Например, Draw_Auth_Frame должно быть написано как drawAuthFrame, а лучше - drawAuthorizationFrame. Во-вторых, многие имена просто неинформативны, и читать код тяжело. И наконец, разбиение на классы у тебя сделано не лучшим образом - я с ходу не сумел понять, какой класс какую роль выполянет.

                            Постараюсь выкроить время, и написать код, как я бы сделал его сам.
                              честно говоря, я в коде ничего не понял :)

                              зачем создавать cd в InsertUser.actionPreformed(), если там все методы статические?
                              в Connect.TableExists() не закрывается ResultSet с метаданными

                              мне кажется, что Connection приходит null'овым
                              Сообщение отредактировано: Grab[SSAU] -
                                Nort0n, пвтаюсь разобраться, и мне это пока не удается. У тебя вызывается первая форма. При нажатии на OK, при условии, что мы ничего в поля не ввели, появляется вторая форма. Это правильно?
                                  Дааа, ребят всем спасибо, я разобрался. МОгу выложить исходник с указанием на мои тупые ошибки

                                  ExpandedWrap disabled
                                    зачем создавать cd в InsertUser.actionPreformed(), если там все методы статические?


                                  событие нажатия кнопки


                                  Вообщем, у меня была ошибка в синтаксисе. один из запросов был написан неверно с т.зрения языка Sql. я создавал таблицу Users но после прописывания столбцов у меня стояла какая то левая запятая, => таблица не создавалась. так же в методе по нажатию кнопки я не вызывал коннект к серверу. на самом деле выхзов коннекта по нажатию кнопки Add - в корне не верен, вызывать его нужно в Main'e сразу после отрисовки обоих форм.

                                  Вот исходник, уже рабочий, всем спасибо за время, которое на меня потратили
                                  Сообщение отредактировано: Nort0n -

                                  Прикреплённый файлПрикреплённый файлDataBase.zip (14.53 Кбайт, скачиваний: 46)
                                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                  0 пользователей:


                                  Рейтинг@Mail.ru
                                  [ Script execution time: 0,0694 ]   [ 15 queries used ]   [ Generated: 5.05.24, 06:44 GMT ]