Programm wird nach DB-Eintrag nicht weitergeführt

daniel_sun

Erfahrenes Mitglied
Hallo,

mit folgendem Code möchte ich eine Zeile in die DB schreiben:

Java:
		String[] varMovie ={ window.importPanel.importField.getText(),
							 title,
							 discription,
							 rating,
							 certification,
							 release,
							 runtime,
							 budget,
							 revenue,
							 new QualityTable().getId(window.tabPane.fileInfoPanel.qualityCombo.getSelectedItem().toString())+"",
							 size,
							 new LocationTable().getId(window.tabPane.fileInfoPanel.locationCombo.getSelectedItem().toString())+""};
		System.out.println("Füge Daten hinzu");
		movieTable.addRow(varMovie);
		System.out.println("Daten hinzugefüht")

Folgender Code steht in der addRow()

Java:
	public void addRow(String[] var){
		DBHandler db = new DBHandler();
		db.QueryUpdate("INSERT INTO movies (movieID, title, discription, rating, certification, released, runtime, budget, revenue, qualityID, size, locationID, lastupdate)"+
					    "VALUES(?,?,?,?,?,?,?,?,?,?,?,?, CURRENT_TIMESTAMP())", var);		
		db.close();
	}

Hier noch der Code der Methode QueryUpdate()

Java:
	public void QueryUpdate(String sqlCommand, String[] var){ 
        try {
        	if(var == null){
        		stmt.executeUpdate(sqlCommand);
        	}else{
        		PreparedStatement prepStmt = conn.prepareStatement(sqlCommand);
        		for(int i = 0; i < var.length; i++){
        			prepStmt.setString(i+1, var[i]);
        		}
        		prepStmt.executeUpdate();
        	}

        } catch (Exception e) {
			System.err.println(""+e);
		}
       
    }

Das Programm führt den Query aus und dieser ist nachher wie gewünscht im Programm zu finden. Auch das Stringarray ist korrekt befüllt!
Nur wird das Programm nach der DB-Operation nicht fortgeführt. Es stürzt nicht ab und es wird auch kein Fehler ausgegeben. Es wird einach nicht fortgesetzt. In der Console wird nur Füge Daten hinzu ausgegeben. Dann passiert nichts mehr . Verstehe nicht warum das Programm nicht weiter ausgeführt wird...

Gruß
 
Ok Er bleibt beim DB-Close hängen

Java:
	public void close(){
		try {
			conn.close();
			rs.close();
			stmt.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}

er bleibt beim rs.close(); hängen.
 
ja dein problem sollte sein, dass du zuerst die verbindung unterbrichst und dann versucht das Resultset zu schließen. versuch es mal so

Java:
    public void close(){
        try {
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
    }
oder so

Java:
    public void close(){
        try {
            rs.close();
            stmt.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
    }
 
Ich Frage mich gerade nun auch ob du, da du ja ein Preperetstatemt besitzt dieses auch schließt? weil in der Methode close() sehe ich nur, dass das nochma Statement geschlossen wird und nicht auch noch das Preperedstatement, wenn dein SQL mehrere noch nicht definierte Variablen aufweist.
 
Zurück