MySQL Problem mit UPDATE Abfrage

C

coolman1008

Gast
Hallo alle zusammen,

ich habe eine Frage, ich möchte in meiner Access Datenbank einen Wert aktualisieren doch er bringt mir immer den Fehler, das mein ResultSet closed sei.

in meiner Datrenbank Klasse habe ich das als Methode:

Java:
public boolean speichere_Produkt(Produkt akt_produkt)
	{
	
	String mSQL;
	ResultSet rs;
	
	try
	{
		
	mSQL =  "SELECT Produktname,vorhanden,sicherheitsbestand,Menge FROM KÜHLSCHRANK";
	rs = stmtSQL.executeQuery(mSQL);	
	
		
	mSQL = "UPDATE Kühlschrank";
	mSQL = mSQL + " SET Kühlschrank.vorhanden = " +  akt_produkt.getVorhanden();
	
		
	stmtSQL.executeUpdate(mSQL);

	return true;
	}
	catch(SQLException err)
	{
	System.err.println(err);
	return false;
	}
	}

in meiner anderen Klasse:

Java:
protected void speichern_clicked() {
		
			while (db.nächster()==true){
				
				if (db.akt_produkt.getProduktname().contains(t_suche.getText())){
			
			int a = 0;
			String c;
			c=t_gekauft.getText();

			int b= Integer.parseInt(c);
		
			
			a= db.akt_produkt.getVorhanden() + b;
		    db.akt_produkt.setVorhanden(a);  
		    
			db.speichere_Produkt(db.akt_produkt);
			
				}
			}
			}

Ich hoffe ihr könnt mir helfen, ich bin echt am verzweifeln.

Gruß
Steffen (coolman1008)
 
C

coolman1008

Gast
Danke für die Antwort. Leider habe ich mit dem Datenbankzugriff in java noch sher wenig Erfahrungen da ich es nur in der Schule benutze.

wie öffne ich ein neues rs damit meine UPDATE Abfrage funktionieren kann?
 
C

coolman1008

Gast
Habe den Text jetzt soweit verändert:

Java:
public boolean update_Produkt(Produkt akt_produkt)
	{
		String mSQL;
		ResultSet rs;
		try
		{
			//Die Datenbank wurde bereits geöffnet! 
			//Gibt es das Produkt schon?
		mSQL = "SELECT Produktname,vorhanden,sicherheitsbestand,Menge FROM KÜHLSCHRANK ";
		mSQL = mSQL + " WHERE (Produktname" + akt_produkt.getProduktname() + ";";
		rs = stmtSQL.executeQuery(mSQL);

		if(rs.next())
		{
			//ja - dann nur mögliche Änderungen übernehmen
		mSQL = "UPDATE KÜHLSCHRANK ";
		mSQL = mSQL + "SET Produktname=" + akt_produkt.getProduktname()+ "";
		mSQL = mSQL + " vorhanden=" + akt_produkt.getVorhanden()+ ",";
		mSQL = mSQL + " sicherheitsbestand=" + akt_produkt.getSicherheit()+ ",";
		mSQL = mSQL + " Menge=" + akt_produkt.getMenge()+ "";
		mSQL = mSQL + " WHERE Produktname=" + akt_produkt.getProduktname() + ";";
		stmtSQL.executeUpdate(mSQL);
		}
		else
		{
			//nein - dann neues Produkt einfügen
	mSQL = "INSERT INTO KÜHLSCHRANK(Produktname,vorhanden,sicherheitsbestand,Menge) ";
		mSQL = mSQL + "VALUES("+ akt_produkt.getProduktname()+", "+akt_produkt.getVorhanden()+", "
		+akt_produkt.getSicherheit()+ ", "+akt_produkt.getMenge();
		stmtSQL.executeUpdate(mSQL);
		}
		return true;
		}
		catch(SQLException err)
		{
		System.err.println(err);
		return false;
		}}

doch leider bringt er andauernd diese Fehlermeldungen:

Java:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler in Abfrageausdruck '(sicherheitsbestand=1;'.
java.sql.SQLException: ResultSet is closed

leider weiß ich nicht warum er diese Fehlermeldungen bringt und bekomme einfach kein neues Resultset geöffnet oder was an meiner Abfrage falsch sein könnte. Danke für eure Hilfe.
 
S

SlaterB

Gast
du hast drei verschiedene Querys, kannst du die Fehlermeldung auf eine davon einschränken?
ist es die zweite?
gib den zusammengebauten String mSQL aus, poste ihn hier,

kannst du etwas über die Datenbank sagen, welchen Datentyp hat sicherheitsbestand?
funktionieren einfachere Querys, z.B. update Kühlschrank nur mit neuen Produktnamen?

ins catch gehört WIE IMMER
err.printStackTrace();
 

parabool

Bekanntes Mitglied
Komma fehlt:
SQL:
 mSQL = mSQL + "SET Produktname=" + akt_produkt.getProduktname()+ ",";
 
Zuletzt bearbeitet:
I

irgendjemand

Gast
1) tu uns und vor allem dir selbst erstmal den gefallen und rücke deinen code mal ordentlich ein ...
so ist das ja ein krampf ...

2) du solltest anstatt Exception.toString *nichts anderes ist PrintStream.println(Exception)* mal lieber das hier verwenden
Java:
err.printStackTrace();
das gibt dir eine detailierte fehlermeldung was wo wann warum schief gelaufen ist ... nur mit dem exception-text kommt man meist nicht weit ...

3)
Java:
String+String+String
sowas macht man in java nicht !
verwende hierfür StringBuilder und baue das ganze mit StringBuilder.append(String) zusammen ...

4) syntax-fehler im SQL-query
deine qeuries sind syntaktisch fehlerhaft
es fehlen zum beispiel schließende klammern , leerzeichen , operanden ... desswegen bekommst du auch als fehlermeldung "SYNTAXFEHLER" ...

5) charset
UMLAUTE und SONDERZEICHEN sollte man immer vermeiden wo es geht !
mich würde es nicht wundern wenn du zuletzt eine fehlermeldung über eine nicht gefundene spalte / tabelle "KÜHLSCHRANK" erhältst weil wärend der verbindung charset-fehler auftreten und dann beim SQL-server sowas wie KfeacHLSCHRANK ankommt ... aber naja ...


alles in allem enthält dein code einfach zu viele fehler und ist auch nicht sauber implementiert ... von der fehlenden formatierung mal ganz zu schweigen ...
 
C

coolman1008

Gast
Danke für eure Antworten. Meine Abfrage habe ich soweit verbessert bekommen das diese keine Fehler mehr erzeugt. Doch leider bleibt mein Problem mit dem ResultSet.
Um dieses zu öffnen muss ich da etwas in meiner methode verändern die meine Speichermethode aufruft?

Java:
protected void speichern_clicked() {
		
			while (db.nächster()==true){
				
				if (db.akt_produkt.getProduktname().contains(t_suche.getText())){
			
			int a = 0;
			String c;
			c=t_gekauft.getText();

			int b= Integer.parseInt(c);
		
			
			a= p.getVorhanden() + b;
		    p.setVorhanden(a); 
		    
		    
			db.update_Produkt(p);
			
				}
			}
			}
 
S

SlaterB

Gast
meiner Ansicht nach wird auch im ersten Posting schon kein ResultSet nach anderen weiteren Queries verwendet
(im ersten Posting wird gar überhaupt nicht auf das ResultSet zugegriffen?),
wieder einmal die Frage: wo tritt konkret der Fehler auf, welche Zeile, welcher StackTrace, welche exakte Fehlermeldung,

ist es nicht leicht das bei Programmierfehlern immer korrekt mit anzugeben?

---

allgemein ist die Abhilfe, mehrere Statements zu verwenden,
wo die bei dir herkommen ist unklar, wenn du aber eines hast, dann vielleicht auch mehrere

ich bin aber skeptisch ob das der Fehler ist
 
Zuletzt bearbeitet von einem Moderator:
I

irgendjemand

Gast
[c]db.nächster[/c]
OUCH .... evil code !

umlaute sind in java selbst zwar kein problem ... werden aber zu einem wenn du das source-file von windows nach linux / vise-versa porten willst ... -> ÄNDERN !

btw : STACKTRACE !!!
sollen wir raten welche fehlermeldung du bekommst ?
 
C

coolman1008

Gast
Nochmals Danke für eure Antworten. Leider bekomme ich nur die Fehlermeldung:

Java:
java.sql.SQLException: ResultSet is closed

den konkreten Fehler kann ich leider nicht anzeigen da ich nicht weiß wo ich

Java:
err.printStackTrace();

einfügen sollte. Direkt in den letzten catch Befehl?

[JAVA
catch(SQLException err)
{
err.printStackTrace();
System.err.println(err);
return false;
}}[/code]

denn wenn ich es so mache kommt leider nur die gleiche Fehlermeldung raus.

Ps: ich benutze Java momentan nur in der Schule und mache so eine Datenbankspeicherung zum ersten Mal un habe leider noch keinerlei erfahrung damit. Deswegen sagen mir auch viele eurer Fachwörter leider nichts.
Entschuldigung das ich mich so blöd anstelle.
 
S

SlaterB

Gast
> Direkt in den letzten catch Befehl?
in jeden catch-Befehl, außer du hast begründet ein besseres Verfahren

-----

wenn du generell nichts über Programmablauf weißt, kann man dir noch weniger extern helfen,
allgemeine Ratschläge:
- fange mit einem Hello-Word-Programm an, und füge nur dann Methoden und Code hinzu wenn du auch weißt was dort ungefähr passiert
- zur Kontrolle könnte z.B. zu Beginn und Ende jeder Methode eine Ausgabe des Methodennames erfolgen,
auch Schleifen gerne mitzählen, aktuelle wichtige Parameter wie Produktname ausgeben usw.,

wenn der Bildschirm mit hunderten Meldungen überschwemmt wird und auch die letzten vor der Fehlermeldung mehr stören als helfen, dann kann man von ZUVIEL Information reden,
die meisten Probleme entstehen aber durch ZUWENIG Information
 
C

coolman1008

Gast
also die Grundkenntnisse mit Grafischer Oberfläche mit GUI kann ich schon, nur die Datenbanken haben wir in der Schule bis jetzt nur eingelesen und nicht etwas hinzugefügt oder verändert.
 
S

SlaterB

Gast
ob Datenbank, GUI, Webframework oder Marssonde, das Gute an Java ist ja dass alles weitgehend einfacher Code ist,
die Grundlage besteht auch darin zu verstehen, dass Codezeilen hintereinanderstehen und der Reihe nach abgearbeitet werden,

eine Exception taucht an einer bestimmten Stelle auf, ein try und catch funktionieren in der Regel,
System.out.println() lassen Ausgaben auf dem Bildschirm erscheinen, Objekte können null sein usw.

wenn solche Regeln verstanden sind, dann kann man mit einem Programm auch arbeiten und sieht keine Blackbox,
deren einzige Reaktion sein soll dass am Ende eine Fehlermeldung rauskommt
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J MyBatis - Update Problem Datenbankprogrammierung 4
S JPA: Problem mit Update von Daten Datenbankprogrammierung 7
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
cosmic Problem beim Update einer Oracle DB Datenbankprogrammierung 7
T Problem beim Update in die Access DB Datenbankprogrammierung 9
S Update Problem Datenbankprogrammierung 3
N Hibernate & hsqldb: Problem bei db-update Datenbankprogrammierung 7
T Problem beim Update vom Resultset + Firebird Datenbankprogrammierung 2
W Hibernate Update Problem Datenbankprogrammierung 3
O Update-Problem mit Hibernate-Framework Datenbankprogrammierung 5
L Problem mit Update Datenbankprogrammierung 14
G Problem mit Datums-Format bei UPDATE Datenbankprogrammierung 3
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
C Problem mit Apache Poi Datenbankprogrammierung 6
N HSQLDB Problem mit Eclipselink in runnable Jar Datenbankprogrammierung 10
P GroupLayout-Problem Datenbankprogrammierung 12
F XAMPP max connections problem Datenbankprogrammierung 6
C MySQL Problem in phpMyAdmin Oberfläche Datenbankprogrammierung 5
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
C Problem with insertion in database. Datenbankprogrammierung 7
F Problem mit Hibernate c3p0 Datenbankprogrammierung 2
W Problem mit Insert in zwei Tabellen Datenbankprogrammierung 8
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
A kleines Problem Datenbankprogrammierung 6
T Problem mit Datenbankverbindung Datenbankprogrammierung 22
V Derby/JavaDB updateRow Problem Datenbankprogrammierung 0
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
Nuiton EmbeddedDriver Problem Datenbankprogrammierung 6
A MongoDB Passwort Problem Datenbankprogrammierung 0
O HSQLDB Hibernate Criteria Problem Datenbankprogrammierung 3
F MySQL JDBC Problem Datenbankprogrammierung 5
Anfänger2011 Datenbankstruktur/aufbau (theoretisches Problem) Datenbankprogrammierung 5
M Derby/JavaDB Drop Database problem Datenbankprogrammierung 3
M Derby/JavaDB NOT LIKE problem Datenbankprogrammierung 19
N HSQLDB Problem mit EntityManager Datenbankprogrammierung 7
B MySQL JPAContainer Problem Datenbankprogrammierung 4
K Eclipse Apache Derby Treiber Problem Datenbankprogrammierung 4
C Problem oder Denkfehler mit H2-Database Datenbankprogrammierung 3
E Wie kann man das Problem mit der BLOB-Spalte lösen? Datenbankprogrammierung 1
M Problem mit jcouchdb und CouchDB - UTF8 kein gültiger Zeichentyp Datenbankprogrammierung 4
T MySQL Problem mit Datenbankanbindung Datenbankprogrammierung 4
M INSERT-Problem = integrity constraint violation: foreign key no parent Datenbankprogrammierung 5
P SQL Query Problem Datenbankprogrammierung 14
A MySQL Problem bei Tabelle ausgeben Datenbankprogrammierung 3
Q MySQL JDBC-Treiber Problem Datenbankprogrammierung 2
B SQLite Problem bei Planung der Datenbank [Jeopardy] Datenbankprogrammierung 3
A Problem mit dem Import und Export von Bildern Datenbankprogrammierung 4
P Oracle Problem mit Umlauten Datenbankprogrammierung 9
A Problem mit Create-Statement Datenbankprogrammierung 9
D Problem mit COLUMN_IDENTIFIERS Datenbankprogrammierung 8
Bluedaishi MySQL Abfrage Problem :-) Datenbankprogrammierung 21
M Problem mit mehreren Datasourcen Datenbankprogrammierung 3
R Resultset.last() Problem Datenbankprogrammierung 12
M Problem GroupBy Datenbankprogrammierung 3
S CURRENT_DATE problem Datenbankprogrammierung 2
M Problem mt JPA Id-Generators Datenbankprogrammierung 18
Gossi Oracle Problem mit group by... Datenbankprogrammierung 22
M MySQL SQL Abfrage Problem Datenbankprogrammierung 6
R MS-SQL Express Login-Problem Datenbankprogrammierung 8
P Lazy-Fetchig und Session-Problem mit Hibernate Datenbankprogrammierung 4
N HSQLDB Problem beim Treiberladen im Jar Datenbankprogrammierung 6
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
C Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem. Datenbankprogrammierung 3
M Problem mit HQL Syntax Datenbankprogrammierung 5
K Db4o Delete Problem Datenbankprogrammierung 11
Mike90 Deadlock/Lock Problem Datenbankprogrammierung 4
T Access 32bit on Win7 64Bit ODBC Problem Datenbankprogrammierung 1
C unverständliches DB Problem (Es ist kein temporärer Systemtabellenbereich mit einer ausreichenden..) Datenbankprogrammierung 5
S ODBC Treiber Problem/oder unvermögen Datenbankprogrammierung 18
J Problem bei Boolean in PreparedStatement Datenbankprogrammierung 5
C Problem mit SQL-Abfrage Datenbankprogrammierung 5
K Problem mit Datenbankverbindung via Eclipse Datenbankprogrammierung 2
A Problem mit Eintragen von Daten in eine Datenbank mittels DAO Datenbankprogrammierung 4
S Oracle Problem mit PreparedStatement.setString(1,"str") Datenbankprogrammierung 10
B MySQL Problem mit Datenbankanbindung an MySQL Datenbankprogrammierung 2
N Problem bei Erstellung eines Index Datenbankprogrammierung 12
C Hibernate Property-Problem Datenbankprogrammierung 5
c_sidi90 Hibernate Problem Table doesnt excist Datenbankprogrammierung 8
M Problem mit JPA - OneToMany-Relation Datenbankprogrammierung 3
I Hibernate: Composite Foreign Key Problem Datenbankprogrammierung 14
S JPA OptimisticLocking Problem Datenbankprogrammierung 11
I Derby/JavaDB Problem mit Befüllung von Tabelle Datenbankprogrammierung 7
JavaKaffee Derby/JavaDB Quartz-WebAnwendung - Connection/Treiber Problem Datenbankprogrammierung 47
I Problem mit ResultSet Datenbankprogrammierung 2
L Excel in MySQL importieren Problem Datenbankprogrammierung 5
S Problem beim Anlegen einer Tabelle Datenbankprogrammierung 5
S MySQL Problem mit SELECT bzw encoding Datenbankprogrammierung 4
T Problem beim schreiben von daten Datenbankprogrammierung 4
M MySQL getConnection - Verbindung Problem Datenbankprogrammierung 2
K Hibernate + MySQL Problem... Datenbankprogrammierung 2
I MySQL MySQL – Proxy Problem Datenbankprogrammierung 4
M Problem mit Hibernate und Named Query Datenbankprogrammierung 1
M Problem mit Hibernate und Access Datenbankprogrammierung 9
C firebird problem Datenbankprogrammierung 5
F Problem mit Datenbankabfrage Datenbankprogrammierung 7
K SQL Problem mit Date Datenbankprogrammierung 3
jeppi MySQL Design-Problem: DB-Verbindung herstellen und halten - JdbcRowSet / Idle-Timeout? Datenbankprogrammierung 9
J sql abfrage ... Problem mit Datumswert Datenbankprogrammierung 3
G MySQL Connection Problem Datenbankprogrammierung 3
O MySQL Problem mit Umlauten?! Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben