executeUpdate() funktioniert auf einmal nicht

Status
Nicht offen für weitere Antworten.

Ellie

Aktives Mitglied
Hallo!

Ich schlage mich schon den zweiten Tag mit einem Fehler herum, dessen Grund mir einfach nicht klar wird.

Meine Applikation ist an die HSQLDB angebunden, den Code dazu habe ich größtenteils aus „Java ist auch eine Insel“. Nach ein paar Umschichtungen im Programm bekomme ich nun eine Menge von Exceptions bei jedem Versuch, statement.executeUpdate(string) auszuführen. Die Verbindung scheint in Ordnung zu sein, es wird der richtige String erzeugt und der Zugriff aus das Statement-Objekt ist gesichert.

Ich verstehe also nicht, was man tun könnte. Googlen der Fehlerausgaben bringt nur unbeantwortete Fragen zum Vorschein. Ich hoffe nun, dass jemand, der das Problem eventuell wiedererkennt, mir einen Tipp geben kann, wo sich mein Fehler versteckt oder wonach ich noch einmal googeln sollte.

Code der Datenbankanbindung:

Code:
//--------------------------- im Konstruktor ----------------------------------
try 
        {
            Class.forName( "org.hsqldb.jdbcDriver" );
        } 
        catch ( ClassNotFoundException e ) 
        {
            System.err.println( "Keine Treiber-Klasse!" );
            return;
        }
        
        
        
        
        con = null;
        try 
        {
        	con = DriverManager.getConnection("jdbc:hsqldb:file:IrasDB;shutdown=true", "sa", "");
            //System.err.println("Verbindung hergestellt.");
            stmt = con.createStatement();
            
        } 
        catch (SQLException es) 
        	{
                System.err.println("Fehler bei Verbindung mit Datenbank.");
                es.printStackTrace();
            } 
        finally 
            {
                if (con != null) 
                {
                    try { con.close(); } catch ( SQLException esl ) { esl.printStackTrace(); }
                }
            }

//----------------actionPerformed ( Knopfdruck ) ------------------------------ 

  public void actionPerformed(ActionEvent e) {
        if (e.getSource() == knopf || e.getSource() == knopf2) {
        	try {
        	
            	System.err.println(stmt.toString());
                System.err.println("Statement erzeugt.");
                String updateString;
                if (leknr.isSelected()) // Text des Updates
                {
                   updateString = new String("INSERT INTO KANTHAROS VALUES ('" + vokabel.getText() + "', '" + uebersetzung.getText() + "', " + lektion.getText() + ")");
                } else {
                    updateString = new String("INSERT INTO VokabelTabelle (Vokabel, Uebersetzung) VALUES ('" + vokabel.getText() + "', '" + uebersetzung.getText() + "')");
                }
                System.err.println("String erzeugt." + updateString);
                stmt.executeUpdate(updateString);
                System.err.println("Update durchgefuehrt.");

(Ein Screenshot mit der Fehleranzeige)
 
S

SlaterB

Gast
ist das so schwer zu erkennen?
8 Zeilen nach der Erzeugung des Statements schließt du die Verbindung wieder (con.close())

was glaubst du was das zu bedeuten hat?
hast du denn dir nicht ein einziges Tutorial angeschaut
oder dort nicht gelesen was die einzelnen Befehle machen?

die Fehlermeldung sagt es dir dann auch direkt:
'der Fehler ist, dass die Connection schon geschlossen ist'

kann man mehr an Tipps geben in dieser Situation?
Fehlermeldungen sind ja oft kryptisch, aber diese passt perfekt,

--------

so, du darfst also die Connection nicht closen
bzw. es wäre wahrscheinlich besser, wenn du die Connection und das Statement erst dann erzeugst, wenn sie gebraucht wird,
z.B. in der actionPerformed-Operation
 

Ellie

Aktives Mitglied
Oh. Vielen Dank für die Antwort, die Rüge nehme ich an. :) Hätte mir nicht gedacht, dass ich so etwas unter meiner Nase übersehen habe.


(Was nun genau der Denkfehler war: Ich hatte die Anweisung finally immer zum Wirkungsbereich von catch gezählt und weiter nicht beachtet, da ja try nachweislich erfolgreich verlief.)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W HSQLDB executeUpdate funktioniert nicht Datenbankprogrammierung 20
S SQL Statement: executeUpdate Datenbankprogrammierung 15
N executeUpdate "innerhalb" eines Resultsets Datenbankprogrammierung 14
Guybrush Threepwood PreparedStatement: execute() oder executeUpdate() Datenbankprogrammierung 3
S Insert into , executeupdate oder executequery Datenbankprogrammierung 3
B executeUpdate Problem Datenbankprogrammierung 2
J MySQL - executeUpdate - Performance Datenbankprogrammierung 13
F executeUpdate mehrmals Datenbankprogrammierung 3
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
S Datenbankprogrammierung in Java unter NetBeans 12 funktioniert nicht! Datenbankprogrammierung 1
D JPA gleiche methode funktioniert an einer Stelle, an der anderen nicht Datenbankprogrammierung 3
J Firebase KeepSynced funktioniert nicht Datenbankprogrammierung 0
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
H Derby/JavaDB Beispiel funktioniert nur einmal Datenbankprogrammierung 7
P LDAP: Daten eintragen funktioniert nicht Datenbankprogrammierung 7
M Java Datenbankanbindung funktioniert nicht Datenbankprogrammierung 4
J Verbindung zu Derby Datenbank funktioniert nicht Datenbankprogrammierung 14
E Warum funktioniert das Erzeugen einer View nicht? Datenbankprogrammierung 1
M DB-Zugriff funktioniert nach JAR-Erstellung nicht mehr Datenbankprogrammierung 3
L SQL Statement mit Switch-Case funktioniert nicht Datenbankprogrammierung 6
L MySQL App/Java Zugriff auf Mysql-DB funktioniert nicht Datenbankprogrammierung 1
1 MySQL Verbindung mit localhost als IP funktioniert, aber mit normaler IP nicht Datenbankprogrammierung 2
J Datenbankeintag eines Warenkorbes funktioniert nicht Datenbankprogrammierung 4
P SQL-Statement "Top 1" oder "limit" funktioniert nicht Datenbankprogrammierung 12
crashfinger jdbc-connection mit jre7 funktioniert nicht Datenbankprogrammierung 5
W No data found: SQL-Abfrage funktioniert nur beim Debuggen Datenbankprogrammierung 3
X3TitanCore mysqldump funktioniert nicht Datenbankprogrammierung 8
C JDBC Datenbank funktioniert nicht Datenbankprogrammierung 7
T HQL Query funktioniert nicht? Datenbankprogrammierung 8
X Rollback mit Savepoint funktioniert auf Oracle nicht (ORA-01086) Datenbankprogrammierung 4
F wie funktioniert if Statement in SELECT? Datenbankprogrammierung 2
S HSQLDB DELETE-Statement funktioniert nicht Datenbankprogrammierung 4
K MySQL Verbindung funktioniert in Netbeans aber .jar funktioniert nicht Datenbankprogrammierung 5
A Rollback funktioniert nicht Datenbankprogrammierung 10
C MySQL Update funktioniert nicht Datenbankprogrammierung 11
W jpmdbc Problem -Beispiel funktioniert nicht Datenbankprogrammierung 9
H SQL Abfrage funktioniert nicht. Datenbankprogrammierung 10
D Problem: Prepared Statement (Insert) funktioniert nicht. Datenbankprogrammierung 3
E Einfache Abfrage funktioniert nicht Datenbankprogrammierung 3
G MSSQL Server SELECT Abfrage funktioniert nicht Datenbankprogrammierung 4
J Insert auf Access DB funktioniert nicht Datenbankprogrammierung 5
V commit funktioniert nicht Datenbankprogrammierung 2
A Like-Anweisung funktioniert nicht korrekt Datenbankprogrammierung 2
Y ORACLE - Autoincrement funktioniert nicht Datenbankprogrammierung 2
K Zugriff mittels JDBC funktioniert nur lokal Datenbankprogrammierung 5
V MySql abfrage funktioniert auf einmal nicht mehr Datenbankprogrammierung 2
S Gleiche Verbindung funktioniert einmal und einmal nicht Datenbankprogrammierung 4
B MySQL Stored Procedure Aufruf funktioniert nicht Datenbankprogrammierung 4
B Update funktioniert nicht Datenbankprogrammierung 8
A INSERT funktioniert nur im Debug-Modus Datenbankprogrammierung 19
G Insert in MS SQL Server Db funktioniert nicht richtig Datenbankprogrammierung 16
W RsultSet auf null abfragen funktioniert nicht Datenbankprogrammierung 4
D Datenbankzugriff auf MS SQL Server 2000 funktioniert nicht Datenbankprogrammierung 3
F Insert Funktioniert nicht Datenbankprogrammierung 6
S MySQL-Abfrage unter java funktioniert nicht! Datenbankprogrammierung 4
P Insert Into mit Acces und Autowert funktioniert nicht Datenbankprogrammierung 2
J DB Verbindung im IDE funktioniert, als jar nicht Datenbankprogrammierung 5
A delete aus datenbank, funktioniert nicht so richtig Datenbankprogrammierung 10
L DB-Verbindung (Oracle) funktioniert nicht Datenbankprogrammierung 35
S Statement.getGeneratedKeys() funktioniert nicht Datenbankprogrammierung 4
R Datenbank zugriff funktioniert nur offline Datenbankprogrammierung 2
G PostgreSQL Nach Monaten auf einmal ClassNotFound-Exception Datenbankprogrammierung 3
S Daten aus Form in Datenbank nur einmal eintragen Datenbankprogrammierung 2
M MySQL: Spalte auf einmal füllen, ohne iterieren zu müssen Datenbankprogrammierung 4
S Connection/Statement/ResultSet auf einmal geschlossen Datenbankprogrammierung 8
A Viele Abfragen auf einmal: Performance Datenbankprogrammierung 2
Q Resultset will in While nur EINMAL liefern! Datenbankprogrammierung 8

Ähnliche Java Themen


Oben