nach Oracle-Command hängt Applikation

janbuecker

Mitglied
Hi,

ich arbeite mich nun seit mehreren Tagen in Java ein und bin heute vor einem, von mir nicht lösbarem, Problem gestoßen. Und zwar nutze ich ein JFrame welches einige Textfelder hat. Beim Klick auf "Speichern" werden die Daten erfasst und an ein Oracle-SQL übergeben. Jedoch hängt sich die Applikation nach dem Oracle-Command weg. Warum? Ich habe keine Ahnung, das einzige was ich weiß, ist, dass es ohne Command funktioniert.

Klasse: Oracle -> Funktion: execute
Code:
    public static void execute(String sql) {
        connect();
        
        try {
            stmt = conn.createStatement();
            rset = stmt.executeQuery(sql);
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        }

        close();
    }

Applikationsfunktion:
Code:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    if (datum.getText().equals("  .  .    ") == false) {
        String[] datumInput = datum.getText().split("\\.");
        GregorianCalendar cal = new GregorianCalendar();
        String errmsg = "";

        cal.set(Integer.valueOf(datumInput[2].toString()).intValue(), Integer.valueOf(datumInput[1].toString()).intValue() - 1, Integer.valueOf(datumInput[0].toString()).intValue());

        String[] currentDate = cal.getTime().toString().split(" ");
        if (currentDate[0].equals("Sun")) {
            if (JOptionPane.showConfirmDialog(new JFrame(), "Das angegebende Datum ist ein Sonntag! Möchten Sie fortfahren?", "Bestätigung", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) {
                errmsg += "- Abbruch durch Benutzer.\n";
            }
        }

        if (Integer.valueOf(datumInput[0]).intValue() > cal.getActualMaximum(GregorianCalendar.DAY_OF_MONTH) && Integer.valueOf(datumInput[1]).intValue() > 12) {
            errmsg += "- Der ausgewählte Datum ist ungültig.\n";
        }

        String[] vonInput = von.getText().split("\\:");
        if (Integer.valueOf(vonInput[0].toString()).intValue() > 23 && Integer.valueOf(vonInput[1].toString()).intValue() > 59) {
            errmsg += "- Die angegebende Von-Zeit ist ungültig.\n";
        }

        String[] bisInput = bis.getText().split("\\:");
        if (Integer.valueOf(bisInput[0].toString()).intValue() > 23 && Integer.valueOf(bisInput[1].toString()).intValue() > 59) {
            errmsg += "- Die angegebende Bis-Zeit ist ungültig.\n";
        }

        String[] breakInput = pause.getText().split("\\:");
        if (Integer.valueOf(breakInput[0].toString()).intValue() > 23 && Integer.valueOf(breakInput[1].toString()).intValue() > 59) {
            errmsg += "- Die angegebende Pausen-Zeit ist ungültig.\n";
        }

        try {
            if (kunden.getSelectedItem().equals("")) {
                errmsg += "- Sie müssen einen Kunden auswählen.\n";
            }

            if (projekte.getSelectedItem().equals("")) {
                errmsg += "- Sie müssen ein Projekt auswählen.\n";
            }
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }

        if (taetigkeit.getText().equals("")) {
            errmsg += "- Sie müssen ein kurzen Report schreiben.\n";
        }

        if (errmsg.equals("")) {
            
            TimeZone.setDefault(TimeZone.getTimeZone("GMT+2"));
            GregorianCalendar begin = new GregorianCalendar();
            begin.set(Integer.valueOf(datumInput[2]).intValue(), Integer.valueOf(datumInput[1]).intValue(), Integer.valueOf(datumInput[0]).intValue(), Integer.valueOf(vonInput[0]).intValue(), Integer.valueOf(vonInput[1]).intValue());

            GregorianCalendar finished = new GregorianCalendar();
            finished.set(Integer.valueOf(datumInput[2]).intValue(), Integer.valueOf(datumInput[1]).intValue(), Integer.valueOf(datumInput[0]).intValue(), Integer.valueOf(bisInput[0]).intValue(), Integer.valueOf(bisInput[1]).intValue());

            int pausenzeit = ((Integer.valueOf(breakInput[0]).intValue() * 60) + (Integer.valueOf(breakInput[1]).intValue())) * 60;

            int customerid = getCustomerID(kunden.getSelectedItem().toString());
            int projectid = getProjectID(projekte.getSelectedItem().toString());

            Oracle.execute("UPDATE tim_workhours SET beginn=" + (begin.getTimeInMillis() / 1000) + ", finished=" + (finished.getTimeInMillis() / 1000) + ", break=" + pausenzeit + ", customerid=" + customerid + ", projectid=" + projectid + ", report='" + taetigkeit.getText() + "' WHERE entryid=" + EntryID);
            
            ApplHelper.getHome().init();
            ApplHelper.getPopupFrame().setVisible(false);

        } else {
            JOptionPane.showMessageDialog(this, errmsg, "Information", JOptionPane.INFORMATION_MESSAGE);
        }

    }
}
 
Zurück