Fehler: java.lang.NullPointerException (Java/Netbeans//Mysql)

Entwickelte ich eine Applikation in java netbeans mit einem parser, der liest Daten aus einer text-Datei (. txt).

Er liest diese Datei 5 in 5 Minuten und schreibt die Werte in die Datenbank.
Das problem ist, dass nach zwei Stunden läuft das Programm schlägt fehl, zum aufzeichnen und abrufen von Daten aus der Datenbank und gibt diese Fehlermeldung:

Exception in thread java.lang.NullPointerException

Wer kann mir sagen, warum das passiert bitte?

Danke für die Hilfe.

--------------------------------Edit(Code)-------------------------------------------

   Class.forName("com.mysql.jdbc.Driver");
        Connection conexao = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/bdtest", "root", "root");
        Statement stm = conexao.createStatement();


        BufferedReader reader = new BufferedReader(new FileReader("C:/Users/RPR1BRG/Desktop/test.txt"));

        String dados[] = new String[6];
        String linha = reader.readLine();

        while (linha != null) {

            StringTokenizer st = new StringTokenizer(linha, ";\"");

            dados[0] = st.nextToken();
            dados[1] = st.nextToken(); 
            dados[2] = st.nextToken();
            dados[3] = st.nextToken();
            dados[4] = st.nextToken();
            dados[5] = st.nextToken();


            DateFormat dateFormat = new SimpleDateFormat("d-M-yy");

PreparedStatement stmt = (PreparedStatement) conexao.prepareStatement("replace into registos" + " (data_registo, hora_registo, IdSensor, Temperatura, Humidade, pt_orvalho) values (?,?,?,?,?,?)");


               try {
                 stmt.setDate(1, new java.sql.Date(dateFormat.parse(dados[0]).getTime()));
                        stmt.setString(2, dados[1]);
                        stmt.setString(3, dados[2]);
                        stmt.setString(4, dados[3]);
                        stmt.setString(5, dados[4]);
                        stmt.setString(6, dados[5]);



                    } catch (java.text.ParseException ex) {
                        Exceptions.printStackTrace(ex);
                    }



    stmt.executeUpdate();





            linha = reader.readLine();

            PrintWriter writer = new PrintWriter("C:/Users/RPR1BRG/Desktop/test.txt"); 
            writer.print("");
            writer.close();

            }

    } catch (ClassNotFoundException | SQLException | IOException e) {

        System.err.println("Erro: " + e.getMessage());

    }


        }
    };
  • Veröffentlichen Sie Ihren code und den stacktrace.
  • Wie, meinen Sie, wir können Ihnen helfen, ohne Blick auf den code oder stacktrace? Siehe wie man eine Frage SO
  • I' m sorry wegen post-code!
  • Und der stacktrace...
  • Sorry nochmal!! Um den stacktrace ich muss warten, bis die Anwendung gibt die Fehlermeldung wieder, weil ich schon gelöscht 🙁
  • Übrigens, wenn Sie einen PreparedStatement Sie nicht brauchen, um es zu erstellen, die mehrere Male bei der Durchführung der gleichen SQL-Satz, nur die Parameter ändern. Auch, wenn Sie das einfügen mehrerer Zeilen aus einer gleichen Abfrage in Ihrer Datenbank, es wäre besser mit batch-update (pro mehrere Zeilen in einer einzigen Zeit) anstelle von normalem update (pro Zeile).
  • Danke für die Antwort. Und sorry für meine Unwissenheit. Aber in der Praxis, wie kann ich tun, dass Sie sagen?

InformationsquelleAutor user3320956 | 2014-03-18
Schreibe einen Kommentar