# DB-Anbindung Zuweisung fehlgeschlagen



## derRote (10. Apr 2012)

Hallo Freunde 

nachdem ich nun mein schriftliches ABI, die Saufgelage und die Osterfeiertage hinter mir habe, wollte ich an meinem kleinen "Kochbuch" weiterbasteln.

Läft auch ganz gut, doch leider funktioniert die Datenbankanbindung nicht, wie sie sollte :noe:

Meine Nerven liegen Blank ;(

Wenn ich in meinem GUI in meine Textfelder die Atibute eingeben möchte und dann auf Anlegen drücke, erhalte ich in meiner Console folgenden Ausdruck:

actionPerformed()
actionPerformed()
Zuweisung fehlgeschlagen!

Folgenden Code benutze ich für meine Datenbank:


```
package MEINKOCHBUCH;

	//Klassenbibliothek, die SQL-Funktionen abbildet

	import java.sql.*;

	public class DBZugriff {

		//Objekte für den Verbindungsaufbau
			
		//Objekt für die Verbindung zur DB
		
		Connection objVerbindung = null;
		
		//Objekt für die Ausführung von SQL Anweisungen
		
		Statement objSQLBefehl = null;
		
		//Variable für den Treiber und den Pfad zur Datenbank
		Connection mdbdb1 = null;
		String mTreiber;	
		Statement stmtSQL = null;
		//Befehl um Datenbank über Java zu öffnen
		
		public void oeffnen()

		{
			//Frage: Warum try und catch!!!!!!!!
			try
			{
				Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
				
				//Angabe des Treibers und des Pfades zur Datenbank
				//in der folgenden Zeile immer auf Leerzeichen achten
				mTreiber = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=F:/ws/MEIN-KOCHBUCH/src/db1.MDB";
				
				//Verbindungsaufbau: Objekt für die Verbindung zur DB wird erzeugt
				
			 objVerbindung = DriverManager.getConnection(mTreiber);	
				
			}
			
			catch(java.lang.Exception e)
			{
				System.out.println("Verbindung fehlgeschlagen!");
			}
			
		}

		public void aendern(String pSQL)
		
		{
			
		//Zugriff auf DB wird vorbereitet: Objekt für die Ausführung der SQL-Befehle wird erzeugt
		
			try
			{
				objSQLBefehl = objVerbindung.createStatement();
				
				//Ausführung der SQL-Anweisung
				
				objSQLBefehl.executeUpdate(pSQL);
			}
		
			catch (Exception e)
			{
				System.out.println("Zuweisung fehlgeschlagen!");
			}
		
		}
		
		public void schliessen()
		{
			try
			{
				objSQLBefehl.close();
				objVerbindung.close();
			}
			
			catch (Exception e)
			{
				System.out.println("Schließen DB fehlgeschlagen!");
			}
		
		}
		
		public ResultSet lesen (String pSQL)
		{
			//Variable vom Typ Resultset wird deklariert
			
			ResultSet mAntwort;
			
			try
			{
				//Zugriff auf DB wird vorbereitet: Objekt für die Ausführung der SQL-Befehle wird erzeugt
				
				objSQLBefehl=objVerbindung.createStatement();
				
				//Ausführen der SQL-Anweisung und das Ergebnis in einer Variablen abgelegt
				
				mAntwort=objSQLBefehl.executeQuery(pSQL);
				
				//Variable mit Ergebnis wird zurückgegeben
				
				return mAntwort;
			}
			
			catch (Exception e)
			{
				System.out.println("Abfrage konnte nicht ausgeführt werden!");
				
				mAntwort = null;
				
				return mAntwort;
			}
			
		}
		
		//Resultset kann als "virtuelle Tabelle" verstanden werden. In diesem Besipiel basiert der Inhalt
		//des Resultset auf der Methode artikelSuchen() und enthält eine Zeile (der gefundene Artikel)
		//oder keine Zeile (wenn kein Artikel mit der Artikelnummer vorhanden ist).

	
}
```

Kann mir bitte jemand helfen? 
Ich habe gesehen, dass andere User ähnliche Probleme wie ich hatten, doch die ösungsvorschläge brachten mir nichts :noe:

Danke im Vorraus, der Rote :meld:


----------



## tfa (10. Apr 2012)

Dann solltest du dir wohl mal den Stacktrace der Exception ausgeben lassen und ansehen. Vielleicht siehst du dann schon die Lösung.


----------



## derRote (10. Apr 2012)

wtf?

sorry, bin beschränkt ;(


----------



## ARadauer (10. Apr 2012)

derRote hat gesagt.:


> sorry, bin beschränkt ;(





> catch (Exception e)
> {
> System.out.println("Zuweisung fehlgeschlagen!");
> }


ich würd halt den fehler nicht verschlucken...

Schreib ein  e.printStackTrace(); dazu...


----------



## SlaterB (10. Apr 2012)

den pSQL-String ruhig auch hier posten,
wie soll man wissen dass nicht 'fihdoeruoieroweriursfhjsdklfjd' eingetippt wurde?
ok, die Fehlermeldung wird das vielleicht beinhalten


----------



## derRote (10. Apr 2012)

Danke im Voraus für eure Tips!!

Jetzt stelle ich mir aber die Frage, ob es wichtig ist, dass man nicht einfach "hgudbsgowidb" eingibt, sondern ein richtiges Wort.

Ist es dem Programm nicht egal welche Buchstaben in den Textfeldern stehen??:bahnhof:

Das Problem ist ja auch, dass in meiner Datenbank gar keine Attribute drin stehen.....eben weil die Zuwesung fehlgeschlagen ist.


Über weitere Ratschläge wäre ich extrem dankbar....:toll:


----------



## tfa (10. Apr 2012)

> Über weitere Ratschläge wäre ich extrem dankbar


Hast du denn den ersten Ratschlag schon  umgesetzt?


----------



## SlaterB (10. Apr 2012)

> Ist es dem Programm nicht egal welche Buchstaben in den Textfeldern stehen??

hängt vom restlichen Programm ab, welches zu großen Teilen unbekannt ist,

an die Methode aendern() kannst du jedenfalls kein einzelnes Wort übergeben, 
muss schon komplettes SQL-Kommando "UDPATE tabelleX SET x = y" usw. sein


----------



## derRote (10. Apr 2012)

Na klar hab ich den ersten Ratschlag schon umgesetzt.....leider hab ich jetzt auf meiner Konsole als Ausgabe einen riesigen roten Text als Fehlermeldung!!

UND JETZT?

zu SlaterB:

das werde ich sofort ausprobieren...ich denke das könnte die Ursache sein...:toll:

danke....dankeeeee


----------



## SlaterB (10. Apr 2012)

> UND JETZT? 

Fehlermeldung selber verstehen oder hier posten, notfalls Screenshot


----------



## ARadauer (10. Apr 2012)

derRote hat gesagt.:


> Na klar hab ich den ersten Ratschlag schon umgesetzt.....leider hab ich jetzt auf meiner Konsole als Ausgabe einen riesigen roten Text als Fehlermeldung!!
> 
> UND JETZT?



naja den wirst du uns zeigen müssen :autsch:


----------



## derRote (10. Apr 2012)

das wäre dann die Fehlermeldung: :rtfm:


```
actionPerformed()
actionPerformed()
Zuweisung fehlgeschlagen!
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler (fehlender Operator) in Abfrageausdruck ''gfdsgy'bhfday'5.0'54'5'gfeha'.
	at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(Unknown Source)
	at MEINKOCHBUCH.DBZugriff.aendern(DBZugriff.java:62)
	at MEINKOCHBUCH.Speise.erfassen(Speise.java:156)
	at MEINKOCHBUCH.EigenesKochbuch$3.actionPerformed(EigenesKochbuch.java:271)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
actionPerformed()
Zuweisung fehlgeschlagen!
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler (fehlender Operator) in Abfrageausdruck ''gfdsgy'bhfday'5.0'54'5'gfeha'.
	at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(Unknown Source)
	at MEINKOCHBUCH.DBZugriff.aendern(DBZugriff.java:62)
	at MEINKOCHBUCH.Speise.erfassen(Speise.java:156)
	at MEINKOCHBUCH.EigenesKochbuch$3.actionPerformed(EigenesKochbuch.java:271)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$000(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.awt.EventQueue$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.awt.EventQueue$2.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
actionPerformed()
```


----------



## tfa (10. Apr 2012)

> Syntaxfehler (fehlender Operator) in Abfrageausdruck ''gfdsgy'bhfday'5.0'54'5'gfeha'.


Aha. Das scheint Access irgendwie nicht zu verstehen.


----------



## SlaterB (10. Apr 2012)

da konnte ich mit 'fihdoeruoieroweriursfhjsdklfjd' ja endlich einmal fast hellsehen 
bzw. habe dies begünstigt?


----------



## derRote (10. Apr 2012)

Was bedeutet das nun für mich??

WIe soll ich weiter vorgehen?:bahnhof:


----------



## SlaterB (10. Apr 2012)

das bedeutet in erster Linie, das SQL erforderlich ist,
mit sdfjlsdfjlsdfjsdfljsdf kannst du weder Pizzas telefonisch bestellen noch Datenbanken irgendwas mitteilen,

erst musst du dich oder deine User disziplinieren, "UDPATE xy" usw. in Textfelder einzugeben, 

oder den Fehler finden der für Kauderwelsch sorgt,
denn es ist ja völlig unklar für alle Welt, was überhaupt deine Frage, dein Problem ist

"ich gebe 'gfdsgy'bhfday'5.0'54'5'gfeha' irgendwo ein und es passiert nicht das was ich will (was das ist sage ich auch nicht)"
?!


----------



## derRote (10. Apr 2012)

Vielleicht versteht ihr mich jetzt:

Ich möchte über ein Textfeld Daten in eine Datenbank eingeben.

Wähle ich dann den Button Anlegen, damit meine Daten in der Datenbank hinterlegt sind, kommt als Konsolenausgabe Zuweisung fehlgeschlagen (was ich zurvor selbst deklariert habe im Fall eben eine Zuweisung nicht möglich ist).

Das heißt letztendlich, dass die Daten natürlich auch nicht in der Datenbank sind und ich sie nihct wieder abfragen könnte.


Ich hoffe ich habe mich jetzt ein bisschen verständlicher ausgedrückt und ihr könnt mir vielleicht helfen.

Wär echt super!!!:toll:


----------



## SlaterB (10. Apr 2012)

es gibt keine Funktion, Daten direkt einzufügen,

eine Datenbank ist eine strukturierte Sache, in der man neben grundsätzlichen Dingen wie Projekt/Schema/User/Rechte usw.
als erstes eine Tabelle mit Feldern anlegen muss,
vorher gibt es keinen strukturieren Platz für Informationen

Datenbank - grundlegender Aufbau


----------



## ARadauer (10. Apr 2012)

was genau übergibst du da:
 objSQLBefehl.executeUpdate(pSQL);


mach mal ein System.out.println(pSQL);


----------



## derRote (10. Apr 2012)

Also mit einem System.out.println verändert sich überhaupt nichts.

Nach wie vor kann irgendetwas nicht zugewiesen werden.....:bahnhof:


----------



## ARadauer (10. Apr 2012)

klar ein System.out.println gibt auch nur das query auf der konsole aus.
Kannst du uns bitte das query posten was du an die datenbank schickst...


----------



## derRote (10. Apr 2012)

Meinst du meinen Quellcode für die Datenbankanbindung?


```
package MEINKOCHBUCH;

	//Klassenbibliothek, die SQL-Funktionen abbildet

	import java.sql.*;

	public class DBZugriff {

		//Objekte für den Verbindungsaufbau
			
		//Objekt für die Verbindung zur DB
		
		Connection objVerbindung = null;
		
		//Objekt für die Ausführung von SQL Anweisungen
		
		Statement objSQLBefehl = null;
		
		//Variable für den Treiber und den Pfad zur Datenbank
		Connection mdbdb1 = null;
		String mTreiber;	
		Statement stmtSQL = null;
		//Befehl um Datenbank über Java zu öffnen
		
		public void oeffnen()

		{
			//Frage: Warum try und catch!!!!!!!!
			try
			{
				Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
				
				//Angabe des Treibers und des Pfades zur Datenbank
				//in der folgenden Zeile immer auf Leerzeichen achten
				mTreiber = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=F:/ws/MEIN-KOCHBUCH/src/db1.MDB";
				
				//Verbindungsaufbau: Objekt für die Verbindung zur DB wird erzeugt
				
			 objVerbindung = DriverManager.getConnection(mTreiber);	
				
			}
			
			catch(java.lang.Exception e)
			{
				System.out.println("Verbindung fehlgeschlagen!");
			}
			
		}

		public void aendern(String pSQL)
		
		{
			
		//Zugriff auf DB wird vorbereitet: Objekt für die Ausführung der SQL-Befehle wird erzeugt
		
			try
			{
				objSQLBefehl = objVerbindung.createStatement();
				
				//Ausführung der SQL-Anweisung
				
				objSQLBefehl.executeUpdate(pSQL);
				
				System.out.println(pSQL); 
			}
		
			catch (Exception e)
			{
				System.out.println("Zuweisung fehlgeschlagen!");
				
			}
		
		}
		
		public void schliessen()
		{
			try
			{
				objSQLBefehl.close();
				objVerbindung.close();
			}
			
			catch (Exception e)
			{
				System.out.println("Schließen DB fehlgeschlagen!");
			}
		
		}
		
		public ResultSet lesen (String pSQL)
		{
			//Variable vom Typ Resultset wird deklariert
			
			ResultSet mAntwort;
			
			try
			{
				//Zugriff auf DB wird vorbereitet: Objekt für die Ausführung der SQL-Befehle wird erzeugt
				
				objSQLBefehl=objVerbindung.createStatement();
				
				//Ausführen der SQL-Anweisung und das Ergebnis in einer Variablen abgelegt
				
				mAntwort=objSQLBefehl.executeQuery(pSQL);
				
				//Variable mit Ergebnis wird zurückgegeben
				
				return mAntwort;
			}
			
			catch (Exception e)
			{
				System.out.println("Abfrage konnte nicht ausgeführt werden!");
				
				mAntwort = null;
				
				return mAntwort;
			}
			
		}
		
		//Resultset kann als "virtuelle Tabelle" verstanden werden. In diesem Besipiel basiert der Inhalt
		//des Resultset auf der Methode artikelSuchen() und enthält eine Zeile (der gefundene Artikel)
		//oder keine Zeile (wenn kein Artikel mit der Artikelnummer vorhanden ist).

	
}
```

vielleicht hilft das weiter....wär echt geil:toll:


----------



## ARadauer (10. Apr 2012)

ok jetzt glaub ichs dir nicht mehr... du verarscht mich  stimmts?
Spätestens bei ''gfdsgy'bhfday'5.0'54'5'gfeha' hätt ichs merken müssen... :autsch:


----------



## SlaterB (10. Apr 2012)

du wirst schon mehrfach gefragt, wie der String aussieht, 
System.out.println(pSQL); 
schreibt dir ARadauer direkt als Code, 
(wenn du nicht weißt wofür System.out.println() gut ist: das ist der EINZIGE Befehl im wichtigsten Hello World-Programm..)

und du fragst was du posten sollst, wiederholst den schon bekannten Quellcode?
meine Güte


JAVA - Hello World


----------



## derRote (10. Apr 2012)

Hey sry Leute.....

so ganz so gut kenn ich mich mit der Fachsprache einfach nicht aus.....verarschen will ich hier aber ganz sicher niemand....ich brauche ernstahft Hilfe!!!

Ich fände es einfach nur cool wenn mir jeman helfen könnte....

Ich blicks gerade einfach nur nicht....aber macht mich deswegen nicht so fertig....;(


----------



## SlaterB (10. Apr 2012)

festzustellen bleibt, dass du auch nach diesem Posting noch nicht den Inhalt der String-Variablen gepostet hast

dass dir jemand helfen soll ist von Anfang an klar und gilt für jeden Forum-Thread, das ist keine echte Info

hast du denn aus den bisherigen zwei Seiten des Threads schon irgendwas erfahren,
kannst du konkret in Worte fassen was dich gerade beschäftigt?


----------



## ARadauer (11. Apr 2012)

derRote hat gesagt.:


> Ich blicks gerade einfach nur nicht....aber macht mich deswegen nicht so fertig....;(



Poste doch einfach den String/Befehl/Abfrage(Query) den du an die Datenbank schickst. :toll:

Darf ich fragen wie alt du bist und warum du das machen musst?


----------



## derRote (11. Apr 2012)

Ich poste euch jetzt einfach alle Klassen, die ich bis jetzt gemacht habe:

1.


```
package MEINKOCHBUCH;

public class Startklasse {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Startseite s1= new Startseite();
		s1.setVisible(true);
		s1.setLocation(400, 300);
		
	}

}
```

2. 


```
package MEINKOCHBUCH;

import java.awt.Frame;
import javax.swing.JButton;
import java.awt.Rectangle;
import java.awt.Dimension;
import javax.swing.JLabel;

/**
 * @author  muttermi
 */
public class Startseite extends Frame {

	private static final long serialVersionUID = 1L;
	/**
	 * @uml.property  name="btGerichte"
	 */
	private JButton btGerichte = null;
	/**
	 * @uml.property  name="btMeinKochbuch"
	 */
	private JButton btMeinKochbuch = null;
	/**
	 * @uml.property  name="btSpezielleAuswahl"
	 */
	private JButton btSpezielleAuswahl = null;
	private JLabel jlÜberschrift = null;
	/**
	 * @uml.property  name="btEnde"
	 */
	private JButton btEnde = null;
	/**
	 * This is the default constructor
	 */
	public Startseite() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		jlÜberschrift = new JLabel();
		jlÜberschrift.setBounds(new Rectangle(75, 31, 286, 37));
		jlÜberschrift.setText("MEIN KOCHBUCH");
		this.setLayout(null);
		this.setSize(483, 241);
		this.setTitle("Startseite");

		this.add(getBtGerichte(), null);
		this.add(getBtMeinKochbuch(), null);
		this.add(getBtSpezielleAuswahl(), null);
		this.add(jlÜberschrift, null);
		this.add(getBtEnde(), null);
	}

	/**
	 * This method initializes btGerichte	
	 * @return  javax.swing.JButton
	 * @uml.property  name="btGerichte"
	 */
	private JButton getBtGerichte() {
		if (btGerichte == null) {
			btGerichte = new JButton();
			btGerichte.setBounds(new Rectangle(17, 77, 88, 38));
			btGerichte.setText("Gerichte");
			btGerichte.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); 
					
					SpeisenListe ss = new SpeisenListe();
					ss.setVisible(true);	
					ss.setLocation(400, 300);
					
					dispose();
					
					// TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return btGerichte;
	}

	/**
	 * This method initializes btMeinKochbuch	
	 * @return  javax.swing.JButton
	 * @uml.property  name="btMeinKochbuch"
	 */
	private JButton getBtMeinKochbuch() {
		if (btMeinKochbuch == null) {
			btMeinKochbuch = new JButton();
			btMeinKochbuch.setBounds(new Rectangle(17, 181, 131, 35));
			btMeinKochbuch.setText("MeinKochbuch");
			btMeinKochbuch.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()");

					EigenesKochbuch ss = new EigenesKochbuch();
					ss.setVisible(true);	
					ss.setLocation(400, 300);
					dispose();
					// TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return btMeinKochbuch;
	}

	/**
	 * This method initializes btSpezielleAuswahl	
	 * @return  javax.swing.JButton
	 * @uml.property  name="btSpezielleAuswahl"
	 */
	private JButton getBtSpezielleAuswahl() {
		if (btSpezielleAuswahl == null) {
			btSpezielleAuswahl = new JButton();
			btSpezielleAuswahl.setBounds(new Rectangle(17, 133, 181, 32));
			btSpezielleAuswahl.setText("Spezielle Auswahl");
			btSpezielleAuswahl.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); 
					
					SpezielleGerichteSuchen ss = new SpezielleGerichteSuchen();
					ss.setVisible(true);	
					ss.setLocation(400, 300);
					dispose();
					
					// TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return btSpezielleAuswahl;
	}

	/**
	 * This method initializes btEnde	
	 * @return  javax.swing.JButton
	 * @uml.property  name="btEnde"
	 */
	private JButton getBtEnde() {
		if (btEnde == null) {
			btEnde = new JButton();
			btEnde.setBounds(new Rectangle(273, 178, 152, 44));
			btEnde.setText("Ende");
			btEnde.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()");
					System.exit(0);
					dispose();
					// TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return btEnde;
	}

}  //  @jve:decl-index=0:visual-constraint="10,10"
```


3.


```
package MEINKOCHBUCH;

	//Klassenbibliothek, die SQL-Funktionen abbildet

	import java.sql.*;

	public class DBZugriff {

		//Objekte für den Verbindungsaufbau
			
		//Objekt für die Verbindung zur DB
		
		Connection objVerbindung = null;
		
		//Objekt für die Ausführung von SQL Anweisungen
		
		Statement objSQLBefehl = null;
		
		//Variable für den Treiber und den Pfad zur Datenbank
		Connection mdbdb1 = null;
		String mTreiber;	
		Statement stmtSQL = null;
		//Befehl um Datenbank über Java zu öffnen
		
		public void oeffnen()

		{
			//Frage: Warum try und catch!!!!!!!!
			try
			{
				Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
				
				//Angabe des Treibers und des Pfades zur Datenbank
				//in der folgenden Zeile immer auf Leerzeichen achten
				mTreiber = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=F:/ws/MEIN-KOCHBUCH/db1.MDB";
				
				//Verbindungsaufbau: Objekt für die Verbindung zur DB wird erzeugt
				
			 objVerbindung = DriverManager.getConnection(mTreiber);	
			
			}
			
			catch(java.lang.Exception e)
			{
				System.out.println("Verbindung fehlgeschlagen!");
			}
			
		}

		public void aendern(String pSQL)
		
		{
			
		//Zugriff auf DB wird vorbereitet: Objekt für die Ausführung der SQL-Befehle wird erzeugt
		
			try
			{
				objSQLBefehl = objVerbindung.createStatement();
				
				//Ausführung der SQL-Anweisung
				
				objSQLBefehl.executeUpdate(pSQL);
				
				System.out.println(pSQL); 
			}
		
			catch (Exception e)
			{
				System.out.println("Zuweisung fehlgeschlagen!");
				
			}
		
		}
		
		public void schliessen()
		{
			try
			{
				objSQLBefehl.close();
				objVerbindung.close();
			}
			
			catch (Exception e)
			{
				System.out.println("Schließen DB fehlgeschlagen!");
			}
		
		}
		
		public ResultSet lesen (String pSQL)
		{
			//Variable vom Typ Resultset wird deklariert
			
			ResultSet mAntwort;
			
			try
			{
				//Zugriff auf DB wird vorbereitet: Objekt für die Ausführung der SQL-Befehle wird erzeugt
				
				objSQLBefehl=objVerbindung.createStatement();
				
				//Ausführen der SQL-Anweisung und das Ergebnis in einer Variablen abgelegt
				
				mAntwort=objSQLBefehl.executeQuery(pSQL);
				
				//Variable mit Ergebnis wird zurückgegeben
				
				return mAntwort;
			}
			
			catch (Exception e)
			{
				System.out.println("Abfrage konnte nicht ausgeführt werden!");
				
				mAntwort = null;
				
				return mAntwort;
			}
			
		}
		
		
		
		//Resultset kann als "virtuelle Tabelle" verstanden werden. In diesem Besipiel basiert der Inhalt
		//des Resultset auf der Methode artikelSuchen() und enthält eine Zeile (der gefundene Artikel)
		//oder keine Zeile (wenn kein Artikel mit der Artikelnummer vorhanden ist).

	
}
```


4.


```
package MEINKOCHBUCH;

import java.awt.Frame;
import javax.swing.JPanel;
import java.awt.Rectangle;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.Dimension;
import java.awt.Color;
import java.awt.Toolkit;
import javax.swing.ImageIcon;

/**
 * @author  muttermi
 */
public class EigenesKochbuch extends Frame {

	private static final long serialVersionUID = 1L;
	private JLabel jlÜberschrift = null;
	private JLabel jlZutaten = null;
	private JLabel jlPreis = null;
	private JLabel jlSchwierigkeitsgrad = null;
	private JLabel jlGang = null;
	private JLabel jlRezept = null;
	/**
	 * @uml.property  name="tfRezept"
	 */
	private JTextField tfRezept = null;
	/**
	 * @uml.property  name="tfGang"
	 */
	private JTextField tfGang = null;
	/**
	 * @uml.property  name="tfSchwierigkeitsgrad"
	 */
	private JTextField tfSchwierigkeitsgrad = null;
	/**
	 * @uml.property  name="tfName"
	 */
	private JTextField tfName = null;
	/**
	 * @uml.property  name="tfZutaten"
	 */
	private JTextField tfZutaten = null;
	/**
	 * @uml.property  name="tfPreis"
	 */
	private JTextField tfPreis = null;
	/**
	 * @uml.property  name="btStartseite"
	 */
	private JButton btStartseite = null;
	/**
	 * @uml.property  name="btEnde"
	 */
	private JButton btEnde = null;
	/**
	 * @uml.property  name="btRezeptAnlegen"
	 */
	private JButton btRezeptAnlegen = null;
	/**
	 * @uml.property  name="btLeeren"
	 */
	private JButton btLeeren = null;
	/**
	 * This is the default constructor
	 * @uml.property  name="objSpeise"
	 * @uml.associationEnd  
	 */
	
	Speise objSpeise = new Speise();
	private JLabel jlName = null;
	
	public EigenesKochbuch() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		jlName = new JLabel();
		jlName.setBounds(new Rectangle(20, 89, 114, 40));
		jlName.setText("Name");
		jlRezept = new JLabel();
		jlRezept.setBounds(new Rectangle(15, 318, 141, 63));
		jlRezept.setText("Rezept");
		jlGang = new JLabel();
		jlGang.setBounds(new Rectangle(15, 277, 117, 28));
		jlGang.setText("Gang");
		jlSchwierigkeitsgrad = new JLabel();
		jlSchwierigkeitsgrad.setBounds(new Rectangle(14, 235, 147, 30));
		jlSchwierigkeitsgrad.setText("Schwierigkeitsgrad");
		jlPreis = new JLabel();
		jlPreis.setBounds(new Rectangle(15, 190, 130, 31));
		jlPreis.setText("Preis");
		jlZutaten = new JLabel();
		jlZutaten.setBounds(new Rectangle(17, 146, 119, 38));
		jlZutaten.setText("Zutaten");
		jlÜberschrift = new JLabel();
		jlÜberschrift.setBounds(new Rectangle(133, 34, 301, 41));
		jlÜberschrift.setText("Mein Kochbuch");
		this.setLayout(null);
		this.setSize(675, 408);
		this.setIconImage(Toolkit.getDefaultToolkit().getImage("F:/Projekt-MeinKochbuch/koch_urkunden.gif"));
		this.setBackground(new Color(212, 26, 26));
		this.setTitle("EigenesKochbuch");

		this.add(jlÜberschrift, null);
		this.add(jlZutaten, null);
		this.add(jlPreis, null);
		this.add(jlSchwierigkeitsgrad, null);
		this.add(jlGang, null);
		this.add(jlRezept, null);
		this.add(getTfRezept(), null);
		this.add(getTfGang(), null);
		this.add(getTfSchwierigkeitsgrad(), null);
		this.add(getTfName(), null);
		this.add(getTfZutaten(), null);
		this.add(getTfPreis(), null);
		this.add(getBtStartseite(), null);
		this.add(getBtEnde(), null);
		this.add(getBtRezeptAnlegen(), null);
		this.add(getBtLeeren(), null);
		this.add(jlName, null);
	}

	/**
	 * This method initializes tfRezept	
	 * @return  javax.swing.JTextField
	 * @uml.property  name="tfRezept"
	 */
	private JTextField getTfRezept() {
		if (tfRezept == null) {
			tfRezept = new JTextField();
			tfRezept.setBounds(new Rectangle(198, 321, 233, 65));
		}
		return tfRezept;
	}

	/**
	 * This method initializes tfGang	
	 * @return  javax.swing.JTextField
	 * @uml.property  name="tfGang"
	 */
	private JTextField getTfGang() {
		if (tfGang == null) {
			tfGang = new JTextField();
			tfGang.setBounds(new Rectangle(200, 276, 229, 34));
		}
		return tfGang;
	}

	/**
	 * This method initializes tfSchwierigkeitsgrad	
	 * @return  javax.swing.JTextField
	 * @uml.property  name="tfSchwierigkeitsgrad"
	 */
	private JTextField getTfSchwierigkeitsgrad() {
		if (tfSchwierigkeitsgrad == null) {
			tfSchwierigkeitsgrad = new JTextField();
			tfSchwierigkeitsgrad.setBounds(new Rectangle(201, 237, 227, 29));
		}
		return tfSchwierigkeitsgrad;
	}

	/**
	 * This method initializes tfName	
	 * @return  javax.swing.JTextField
	 * @uml.property  name="tfName"
	 */
	private JTextField getTfName() {
		if (tfName == null) {
			tfName = new JTextField();
			tfName.setBounds(new Rectangle(206, 94, 215, 38));
		}
		return tfName;
	}

	/**
	 * This method initializes tfZutaten	
	 * @return  javax.swing.JTextField
	 * @uml.property  name="tfZutaten"
	 */
	private JTextField getTfZutaten() {
		if (tfZutaten == null) {
			tfZutaten = new JTextField();
			tfZutaten.setBounds(new Rectangle(207, 142, 214, 32));
		}
		return tfZutaten;
	}

	/**
	 * This method initializes tfPreis	
	 * @return  javax.swing.JTextField
	 * @uml.property  name="tfPreis"
	 */
	private JTextField getTfPreis() {
		if (tfPreis == null) {
			tfPreis = new JTextField();
			tfPreis.setBounds(new Rectangle(207, 187, 219, 37));
		}
		return tfPreis;
	}

	/**
	 * This method initializes btStartseite	
	 * @return  javax.swing.JButton
	 * @uml.property  name="btStartseite"
	 */
	private JButton getBtStartseite() {
		if (btStartseite == null) {
			btStartseite = new JButton();
			btStartseite.setBounds(new Rectangle(494, 269, 142, 50));
			btStartseite.setText("Startseite");
			btStartseite.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); 
					Startseite s = new Startseite();
					s.setVisible(true);	
					s.setLocation(400, 300);
					
					dispose();
					// TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return btStartseite;
	}

	/**
	 * This method initializes btEnde	
	 * @return  javax.swing.JButton
	 * @uml.property  name="btEnde"
	 */
	private JButton getBtEnde() {
		if (btEnde == null) {
			btEnde = new JButton();
			btEnde.setBounds(new Rectangle(493, 334, 150, 48));
			btEnde.setText("Ende");
			btEnde.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()");
					System.exit(0);
					dispose();
					// TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return btEnde;
	}

	/**
	 * This method initializes btRezeptAnlegen	
	 * @return  javax.swing.JButton
	 * @uml.property  name="btRezeptAnlegen"
	 */
	private JButton getBtRezeptAnlegen() {
		if (btRezeptAnlegen == null) {
			btRezeptAnlegen = new JButton();
			btRezeptAnlegen.setBounds(new Rectangle(494, 60, 134, 56));
			btRezeptAnlegen.setText("Rezept Anlegen");
			btRezeptAnlegen.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()");
					objSpeise.setName(tfName.getText());
					objSpeise.setZutaten(tfZutaten.getText());
					objSpeise.setPreis(Double.parseDouble(tfPreis.getText()));
					objSpeise.setSchwierigkeitsgrad(Integer.parseInt(tfSchwierigkeitsgrad.getText()));
					objSpeise.setGang(tfGang.getText());
					objSpeise.setRezept(tfRezept.getText());
					objSpeise.erfassen();
				
					objSpeise.setName(tfName.getText());
					objSpeise.suchen();
					objSpeise.zuweisen();
					this.anzeigen();}
					
					void anzeigen()
					{
						//Liste deklarieren
						
						String Liste;
						
						Liste="Name: "+objSpeise.getName();						      
					
						//Ausgabe der Werte in der Liste im Textarea
						
						      //SpeisenListe(jtGerichteauswahl.append(Liste));
					}
					
					// TODO Auto-generated Event stub actionPerformed()
				
			});
		}
		return btRezeptAnlegen;
	}

	/**
	 * This method initializes btLeeren	
	 * @return  javax.swing.JButton
	 * @uml.property  name="btLeeren"
	 */
	private JButton getBtLeeren() {
		if (btLeeren == null) {
			btLeeren = new JButton();
			btLeeren.setBounds(new Rectangle(491, 131, 138, 54));
			btLeeren.setText("Leeren");
			btLeeren.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()");
					tfName.setText("");
					tfZutaten.setText("");
					tfPreis.setText("");
					tfSchwierigkeitsgrad.setText("");
					tfGang.setText("");
					tfRezept.setText("");
					
					// TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return btLeeren;
	}
	
}  //  @jve:decl-index=0:visual-constraint="16,10"
```


das waren die ersten 4 Klassen....und restlichen 3 folgen noch!!


VIEL SPAß......Ich hoffe ihr versteht mich jetzt besser und könnt mir vielleicht helfen


----------



## derRote (11. Apr 2012)

Hier wäre dann noch der Rest:


5.


```
package MEINKOCHBUCH;

import java.sql.*;

public class Speise {

	/**
	 * @uml.property  name="name"
	 */
	private String name;

	/**
	 * Getter of the property <tt>name</tt>
	 * @return  Returns the name.
	 * @uml.property  name="name"
	 */
	public String getName() {
		return name;
	}

	/**
	 * Setter of the property <tt>name</tt>
	 * @param name  The name to set.
	 * @uml.property  name="name"
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @uml.property  name="zutaten"
	 */
	private String zutaten;

	/**
	 * Getter of the property <tt>zutaten</tt>
	 * @return  Returns the zutaten.
	 * @uml.property  name="zutaten"
	 */
	public String getZutaten() {
		return zutaten;
	}

	/**
	 * Setter of the property <tt>zutaten</tt>
	 * @param zutaten  The zutaten to set.
	 * @uml.property  name="zutaten"
	 */
	public void setZutaten(String zutaten) {
		this.zutaten = zutaten;
	}

	/**
	 * @uml.property  name="preis"
	 */
	private double preis;

	/**
	 * Getter of the property <tt>preis</tt>
	 * @return  Returns the preis.
	 * @uml.property  name="preis"
	 */
	public double getPreis() {
		return preis;
	}

	/**
	 * Setter of the property <tt>preis</tt>
	 * @param preis  The preis to set.
	 * @uml.property  name="preis"
	 */
	public void setPreis(double preis) {
		this.preis = preis;
	}

	/**
	 * @uml.property  name="schwierigkeitsgrad"
	 */
	private int schwierigkeitsgrad;

	/**
	 * Getter of the property <tt>schwierigkeitsgrad</tt>
	 * @return  Returns the schwierigkeitsgrad.
	 * @uml.property  name="schwierigkeitsgrad"
	 */
	public int getSchwierigkeitsgrad() {
		return schwierigkeitsgrad;
	}

	/**
	 * Setter of the property <tt>schwierigkeitsgrad</tt>
	 * @param schwierigkeitsgrad  The schwierigkeitsgrad to set.
	 * @uml.property  name="schwierigkeitsgrad"
	 */
	public void setSchwierigkeitsgrad(int schwierigkeitsgrad) {
		this.schwierigkeitsgrad = schwierigkeitsgrad;
	}

	/**
	 * @uml.property  name="gang"
	 */
	private String gang;

	/**
	 * Getter of the property <tt>gang</tt>
	 * @return  Returns the gang.
	 * @uml.property  name="gang"
	 */
	public String getGang() {
		return gang;
	}

	/**
	 * Setter of the property <tt>gang</tt>
	 * @param gang  The gang to set.
	 * @uml.property  name="gang"
	 */
	public void setGang(String gang) {
		this.gang = gang;
	}

	/**
	 * @uml.property  name="rezept"
	 */
	private String rezept;

	/**
	 * Getter of the property <tt>rezept</tt>
	 * @return  Returns the rezept.
	 * @uml.property  name="rezept"
	 */
	public String getRezept() {
		return rezept;
	}

	/**
	 * Setter of the property <tt>rezept</tt>
	 * @param rezept  The rezept to set.
	 * @uml.property  name="rezept"
	 */
	public void setRezept(String rezept) {
		this.rezept = rezept;
	}

	//Objekt für die Aufnahme von Abfrageergebnissen
	ResultSet objErgebnis = null;
	
	public void erfassen()
	{
		String mSQL; //Zugriffsobjekt wird erzeugt
		DBZugriff objZugriff = new DBZugriff();  //SQL_Befehl zum Einfügen der Artikeldaten wird in einer Variablen abgelegt
		mSQL= "INSERT INTO Rezeptverwaltung (Name, Zutaten, Preis, Schwierigkeitsgrad, Gang, Rezept)"+"VALUES ('"+
		this.name+"'"+this.zutaten+"'"+this.preis+"'"+this.schwierigkeitsgrad+"'"+this.gang+"'"+this.rezept+
		")";
		objZugriff.oeffnen();
		objZugriff.aendern(mSQL);
		objZugriff.schliessen();
	}
	
//prz zum Ändern von Daten
	
	public void korrigieren()
	{
	//Variable für die SQL-Anweisung
	String mSQL;
	//Zugriffsobjekt wird erzeugt
	DBZugriff objZugriff = new DBZugriff();
	//SQL-Befehl zum Abändern der Artikekdaten wird in einer Variablen abgelegt
	mSQL = "UPDATE Rezeptverwaltung SET Name='"+this.name+"',Zutaten='"+this.zutaten+"',Preis="+this.preis+",Schwierigkeitsgrad="+this.schwierigkeitsgrad+",Gang="+this.gang+",Rezept="+this.rezept+
	//Anführungszeuichen muss direkt vor where sein
	"WHERE Name='"+this.name+"'";
	
	objZugriff.oeffnen();
	objZugriff.aendern(mSQL);
	objZugriff.schliessen();
		
	}	
	
//prz um Artikel zu löschen
	
	public void loeschen()
	{
	//Variable für die SQL-Anweisung
	String mSQL;
		//Zugriffsobjekt wird erzeugt
		DBZugriff objZugriff = new DBZugriff();
		//SQL-Befehl zum Löschen der Artikeldaten wird in einer Variablen abgelegt
		mSQL="DELETE FROM Rezeptverwaltung WHERE Name='"+this.name+"'";
		
		objZugriff.oeffnen();
		objZugriff.aendern(mSQL);
		objZugriff.schliessen();
	}
	
//prz um Artikel zu suchen
	
	public void suchen()
	{
		try
		{
		//Variable für die SQL-Anweisung
		String mSQL;
		//Zugriffsobjekt wird erzeugt
		DBZugriff objZugriff = new DBZugriff();
		//SQL-Befehl zum Löschen der Artikeldaten wird in einer Variablen abgelegt
		mSQL = "SELECT * FROM Rezeptverwaltung WHERE Name = '"+this.name+"'";
		objZugriff.oeffnen();
		//Methode zur Ausführung der SQL-Abfrage wird aufgerufen und das Ergebnis der Abfrage in einem Objekt der Klasse ResultSet hinterlegt
		objErgebnis = objZugriff.lesen(mSQL);
		}
		catch (Exception e)
		{
			System.out.println("Suche fehllgeschlagen!");
		}
	}
	
//prz um Datensatz einrem Ergebnisobjekt zuzuweisen
	
	public void zuweisen()
	{
		try
		{
		//Zeiger wird auf den nächsten Datensatz im Ergebnisobjekt gerichtet
		objErgebnis.next();
		//einem Objekt der Fachklasse Artikel werden die entsprechenden Attributswerte des Datensatzes aus der Datenbankabfrage zugewiesen
		this.name=objErgebnis.getString("name");
		this.zutaten=objErgebnis.getString("zutaten");
		this.preis=objErgebnis.getDouble("preis");
		this.schwierigkeitsgrad=objErgebnis.getInt("schwierigkeitsgrad");
		this.gang=objErgebnis.getString("gang");
		this.rezept=objErgebnis.getString("rezept");
		}
		catch (Exception e)
		{
			System.out.println("Zuweisung Ergebnisobjekt fehlgeschlagen!");
		}
	}
	
}
```


6.


```
package MEINKOCHBUCH;

import java.awt.Frame;
import java.awt.Dimension;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.JTable;

public class SpeisenListe extends Frame {

	private static final long serialVersionUID = 1L;
	private JLabel jlGerichteauswahl = null;
	private JButton btStartseite = null;
	private JButton btEnde = null;
	private JTable jtGerichteauswahl = null;
	/**
	 * This is the default constructor
	 */
	public SpeisenListe() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		jlGerichteauswahl = new JLabel();
		jlGerichteauswahl.setBounds(new Rectangle(197, 36, 100, 35));
		jlGerichteauswahl.setText("Gerichteauswahl");
		this.setLayout(null);
		this.setSize(534, 312);
		this.setTitle("SpeisenListe");

		this.add(jlGerichteauswahl, null);
		this.add(getBtStartseite(), null);
		this.add(getBtEnde(), null);
		this.add(getJtGerichteauswahl(), null);
	}

	/**
	 * This method initializes btStartseite	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getBtStartseite() {
		if (btStartseite == null) {
			btStartseite = new JButton();
			btStartseite.setBounds(new Rectangle(35, 239, 170, 50));
			btStartseite.setText("Startseite");
			btStartseite.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); 
					
					Startseite s = new Startseite();
					s.setVisible(true);	
					s.setLocation(400, 300);
					dispose();
					// TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return btStartseite;
	}

	/**
	 * This method initializes btEnde	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getBtEnde() {
		if (btEnde == null) {
			btEnde = new JButton();
			btEnde.setBounds(new Rectangle(303, 238, 171, 51));
			btEnde.setText("Ende");
			btEnde.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); 
					
					System.exit(0);
					dispose();
					
					// TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return btEnde;
	}

	/**
	 * This method initializes jtGerichteauswahl	
	 * 	
	 * @return javax.swing.JTable	
	 */
	private JTable getJtGerichteauswahl() {
		if (jtGerichteauswahl == null) {
			jtGerichteauswahl = new JTable();
			jtGerichteauswahl.setBounds(new Rectangle(45, 86, 417, 134));
			
		}
		return jtGerichteauswahl;
	}

}  //  @jve:decl-index=0:visual-constraint="3,-17"
```


7.


```
package MEINKOCHBUCH;
import java.awt.GridLayout;
import javax.swing.*;
import java.awt.Frame;
import java.awt.Dimension;
import javax.swing.JLabel;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;

import javax.swing.JCheckBox;
import javax.swing.JSlider;
import javax.swing.JButton;
import javax.swing.JTable;

public class SpezielleGerichteSuchen extends Frame {

	private static final long serialVersionUID = 1L;
	private JLabel jlGerichteSuche = null;
	private JCheckBox cbVorspeise = null;
	private JCheckBox cbHauptgericht = null;
	private JCheckBox cbDessert = null;
	private JSlider sPreis = null;
	private JLabel jlPreis = null;
	private JSlider sSchwierigkeitsgrad = null;
	private JLabel jlSchwierigkeitsgrad = null;
	private JButton btStartseite = null;
	private JButton btEnde = null;
	private JTable jTable = null;

	/**
	 * This is the default constructor
	 */
	public SpezielleGerichteSuchen() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		jlSchwierigkeitsgrad = new JLabel();
		jlSchwierigkeitsgrad.setBounds(new Rectangle(44, 288, 121, 16));
		jlSchwierigkeitsgrad.setText("Schwierigekeitsgrad");
		jlPreis = new JLabel();
		jlPreis.setBounds(new Rectangle(83, 214, 34, 16));
		jlPreis.setText("Preis");
		jlGerichteSuche = new JLabel();
		jlGerichteSuche.setBounds(new Rectangle(192, 41, 231, 34));
		jlGerichteSuche.setText("Gerichte Suche");
		this.setLayout(null);
		this.setSize(605, 433);
		this.setTitle("SpezielleGerichteSuche");

		this.add(jlGerichteSuche, null);
		this.add(getCbVorspeise(), null);
		this.add(getCbHauptgericht(), null);
		this.add(getCbDessert(), null);
		this.add(getSPreis(), null);
		this.add(jlPreis, null);
		this.add(getSSchwierigkeitsgrad(), null);
		this.add(jlSchwierigkeitsgrad, null);
		this.add(getBtStartseite(), null);
		this.add(getBtEnde(), null);
		this.add(getJTable(), null);
	}

	/**
	 * This method initializes cbVorspeise	
	 * 	
	 * @return javax.swing.JCheckBox	
	 */
	private JCheckBox getCbVorspeise() {
		if (cbVorspeise == null) {
			cbVorspeise = new JCheckBox();
			cbVorspeise.setBounds(new Rectangle(21, 95, 152, 29));
			cbVorspeise.setText("Vorspeise");
			cbVorspeise.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); 
				
		
					// TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return cbVorspeise;
	}

	/**
	 * This method initializes cbHauptgericht	
	 * 	
	 * @return javax.swing.JCheckBox	
	 */
	private JCheckBox getCbHauptgericht() {
		if (cbHauptgericht == null) {
			cbHauptgericht = new JCheckBox();
			cbHauptgericht.setBounds(new Rectangle(23, 132, 151, 28));
			cbHauptgericht.setText("Hauptgericht");
			cbHauptgericht.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return cbHauptgericht;
	}

	/**
	 * This method initializes cbDessert	
	 * 	
	 * @return javax.swing.JCheckBox	
	 */
	private JCheckBox getCbDessert() {
		if (cbDessert == null) {
			cbDessert = new JCheckBox();
			cbDessert.setBounds(new Rectangle(22, 165, 152, 26));
			cbDessert.setText("Dessert");
			cbDessert.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return cbDessert;
	}

	/**
	 * This method initializes sPreis	
	 * 	
	 * @return javax.swing.JSlider	
	 */
	private JSlider getSPreis() {
		if (sPreis == null) {
			sPreis = new JSlider();
			sPreis.setBounds(new Rectangle(23, 237, 151, 29));
			sPreis.addChangeListener(new javax.swing.event.ChangeListener() {
				public void stateChanged(javax.swing.event.ChangeEvent e) {
					System.out.println("stateChanged()");
				
					  {
					    SpezielleGerichteSuche frame = new SpezielleGerichteSuche();
					    frame.setDefaultCloseOperation( SpezielleGerichteSuche.EXIT_ON_CLOSE );
					    frame.setLayout( new GridLayout(4,0) );
					    JSlider slider1 = new JSlider( 0, 100, 50 );
					    frame.add( slider1 );
					    JSlider slider2 = new JSlider( 0, 100, 50 );
					    slider2.setPaintTicks( true );
					    slider2.setMinorTickSpacing( 5 );
					    frame.add( slider2 );
					    JSlider slider3 = new JSlider( 0, 100, 50 );
					    slider3.setPaintTicks( true );
					    slider3.setMajorTickSpacing( 10 );
					    frame.add( slider3 );
					    frame.pack();
					    frame.setVisible( true );
					  }
					
					
					
					// TODO Auto-generated Event stub stateChanged()
				}
			
		});}
		return sPreis;
	}

	/**
	 * This method initializes sSchwierigkeitsgrad	
	 * 	
	 * @return javax.swing.JSlider	
	 */
	private JSlider getSSchwierigkeitsgrad() {
		if (sSchwierigkeitsgrad == null) {
			sSchwierigkeitsgrad = new JSlider();
			sSchwierigkeitsgrad.setBounds(new Rectangle(27, 311, 149, 28));
			sSchwierigkeitsgrad.addChangeListener(new javax.swing.event.ChangeListener() {
				public void stateChanged(javax.swing.event.ChangeEvent e) {
					System.out.println("stateChanged()"); 
					
					{
					    JFrame frame = new JFrame();
					    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
					    frame.setLayout( new GridLayout(4,0) );
					    JSlider slider1 = new JSlider( 0, 100, 50 );
					    frame.add( slider1 );
					    JSlider slider2 = new JSlider( 0, 100, 50 );
					    slider2.setPaintTicks( true );
					    slider2.setMinorTickSpacing( 5 );
					    frame.add( slider2 );
					    JSlider slider3 = new JSlider( 0, 100, 50 );
					    slider3.setPaintTicks( true );
					    slider3.setMajorTickSpacing( 10 );
					    frame.add( slider3 );
					    JSlider slider4 = new JSlider ( 0, 100, 50 );
					    slider1.setPaintTicks(true);
					    slider1.setMajorTickSpacing( 10 );
					    slider1.setMinorTickSpacing( 2 );
					    frame.add( slider4 );
					    frame.pack();
					    frame.setVisible( true );
					  }
					
					
					
					// TODO Auto-generated Event stub stateChanged()
				}
			});
		}
		return sSchwierigkeitsgrad;
	}

	/**
	 * This method initializes btStartseite	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getBtStartseite() {
		if (btStartseite == null) {
			btStartseite = new JButton();
			btStartseite.setBounds(new Rectangle(26, 370, 164, 38));
			btStartseite.setText("Startseite");
			btStartseite.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); 
					
					Startseite s = new Startseite();
					s.setVisible(true);	
					s.setLocation(400, 300);
					dispose();
					
					// TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return btStartseite;
	}

	/**
	 * This method initializes btEnde	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getBtEnde() {
		if (btEnde == null) {
			btEnde = new JButton();
			btEnde.setBounds(new Rectangle(246, 370, 200, 39));
			btEnde.setText("Ende");
			btEnde.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.out.println("actionPerformed()"); 
					
					System.exit(0);
					dispose();
					
					// TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return btEnde;
	}

	/**
	 * This method initializes jTable	
	 * 	
	 * @return javax.swing.JTable	
	 */
	private JTable getJTable() {
		if (jTable == null) {
			jTable = new JTable();
			jTable.setBounds(new Rectangle(249, 93, 300, 239));
		}
		return jTable;
	}
	
}  //  @jve:decl-index=0:visual-constraint="10,10"
```


----------



## SlaterB (11. Apr 2012)

ein weiteres Mal die Klassen gepostet, die schon bekannt sind, was auch gesagt wurde,
und ein weiteres Mal nicht den String gepostet, nicht die Benutzereingaben verraten (*), die ja niemand erahnen kann,
für den Programmablauf aber entscheidende Funktion haben

nettes Kunststück oder wirklich aktiv Spass-Poster


(*) vor einiger Zeit kam durch die Fehlermeldung, nicht direkt von dir, bereits eine Eingabe a la 'gfdsgy'bhfday'5.0'54'5'gfeha' zum Vorschein,
was dieses komplette Kauderwelsch bedeuten soll hast du aber nie kommentiert

-----

edit:
ok, nun wirds doch durch den Code deutlicher

```
mSQL= "INSERT INTO Rezeptverwaltung (Name, Zutaten, Preis, Schwierigkeitsgrad, Gang, Rezept)"+"VALUES ('"+
        this.name+"'"+this.zutaten+"'"+this.preis+"'"+this.schwierigkeitsgrad+"'"+this.gang+"'"+this.rezept+
        ")";
        objZugriff.oeffnen();
        objZugriff.aendern(mSQL);
```
erstmals sieht man deine Fehler und kann anfangen zu arbeiten, 
durch Posten des SQL-Strings wäre es genauso dazu gekommen,
warum du mit diesen Informationen so lange gewartet hast..

- vor dem VALUES vielleicht besser noch ein Leerzeichen,
- zwischen jedem Wert gehört nicht nur ein einfaches Anführungszeichen ' sondern drei Zeichen: ','
- nach rezept vor der Klammer muss auch noch ein Anführungszeichen, genauso am Anfang vor name


übe doch erstmal SQL mit direkten fertigen SQL-Strings statt Variablen zusammenzusetzen,
dann lernst du ungefähr was Anführungszeichen und Komma dort für eine Bedeutung haben

und wenn komplizierter, dann fange mit einfachen Tabellen mit EINEM Attribut an, nicht gleich wer weiß wie viele auf einmal,

allein schon die Arbeit, alles ständig in die GUI einzutippen,
arbeite immer zuerst mit einem Konsolenprogramm bzw. komplett ohne Eingaben,
String x = "dummy1"; 
kannst du auch direkt im Programm mit Testwerten definieren


----------



## derRote (11. Apr 2012)

aha...
hatte eig schon n anderen Kommentar vorbereited... da ich ihn geschrieben habe, werd ich ihn uch posten ... 

"
Ja SlaterB, wie du richtig erkannt hast, poste ich gerne und deswegen viel 

ich hab eben einfach mla alle meine Klassen geposted, damit ihr vll nachvollziehen könnt, was ich vorhabe.

Wiedereinml stoße ich an meine vokabularischen grenzen und frage mich ob mir jemand deinen Komentar übersetzen kann ... zum einen scheiter ich an dem Begriff "String", zum anderen an "Benutzereingaben" ... da denke ich mir nur: WTF?!?

Ich habe meines Wissens einmal dazu Stellung bezogen, jetzt erkläre ich es einfach so, wie ich mir deine Erklärung auch wünschen würde:

Zeite ist Geld und Geld ist Macht, um Zeit zu Sparen gebe ich also in meine Textfelder einfach mal puren Kauderwelsch a là "asfdghjj" ...wenn du das mal testen möchtest, nimm einfach mal deinen [als Rechtshänder!] rechten zeigefinger und setze bei der "a" taste die durch ein großes "a" dargestelt wird an und ziehe in quer über die tastatur hin und her, vor und zurück und um Würze in die Sache zu bringen auch mal ein wenig hoch und runter.

lg dein Roter  
"

als ich gemerkt habe, das der Groschen dann doch gefallen war muss ich sagen:
muchas dankeschön und ich werds direkt mal probieren ...

in diesem sinne, lg ^^

also ... änderungen übernommen ^^
aber fressen tut die maschiene den hunz immernoch nicht ...
ergebnis in der Console:

Zuweisung fehlgeschlagen!
Zuweisung Ergebnisobjekt fehlgeschlagen!


----------



## SlaterB (11. Apr 2012)

an den Tipps der aller ersten Antworten hier hat sich nichts geändert, bzw. sie passten auf alle Threads, schon immer, in alle Zukunft
und sowieso 

- ruhig dann doch immer neuen Code posten, auch wenn kritisiert, möglichst nicht zig Klassen nochmal,
sondern das was du da gerade entscheidend geändert hast

und ganz besonders wie zuvor:
- die Fehlermeldung bei dir ausgeben lassen und hier posten!
- den fertigen String mit der SQL-Anweisung posten, mal sehen ob er hier im Forum je einmal komplett ans Licht kommt


----------



## derRote (11. Apr 2012)

Hier sind meine Änderungen:


```
public void erfassen()
	{
		String mSQL; //Zugriffsobjekt wird erzeugt
		DBZugriff objZugriff = new DBZugriff();  //SQL_Befehl zum Einfügen der Artikeldaten wird in einer Variablen abgelegt
		mSQL= "INSERT INTO Rezeptverwaltung '(Name, Zutaten, Preis, Schwierigkeitsgrad, Gang, Rezept')"+" VALUES (','"+
		this.name+"','"+this.zutaten+"','"+this.preis+"','"+this.schwierigkeitsgrad+"','"+this.gang+"','"+this.rezept+
		")";
		objZugriff.oeffnen();
		objZugriff.aendern(mSQL);
		objZugriff.schliessen();
	}
```

Neue Fehlermeldung kennt ihr ja schon....


----------



## SlaterB (11. Apr 2012)

das geforderte Anführungszeichen hinter rezept fehlt weiterhin, 
vor name genauso nur ein Anführungszeichen, keine 3er-Kombi

edit: also vor der name-Variable,
am Anfang bei
"INSERT INTO Rezeptverwaltung '(Name"
KEIN Anführungszeichen..,
ach dort hast du dann auch für Rezept eins.., nene, weit hinten



willst du SQL weiter nach Baukasten blind zusammenbauen? 
ich persönlich beende in Kürze die Teilnahme an diesem lustigen Spiel


----------



## derRote (11. Apr 2012)

So vielleicht??


```
public void erfassen()
	{
		String mSQL; //Zugriffsobjekt wird erzeugt
		DBZugriff objZugriff = new DBZugriff();  //SQL_Befehl zum Einfügen der Artikeldaten wird in einer Variablen abgelegt
		mSQL= "INSERT INTO Rezeptverwaltung ('Name, Zutaten, Preis, Schwierigkeitsgrad, Gang, Rezept')'"+" VALUES (','"+
		this.name+"','"+this.zutaten+"','"+this.preis+"','"+this.schwierigkeitsgrad+"','"+this.gang+"','"+this.rezept+
		")";
		objZugriff.oeffnen();
		objZugriff.aendern(mSQL);
		objZugriff.schliessen();
	}
```

Warum dieses Spiel beenden??...des is berhaupt kein Spiel... für mich is des ne ernste Sache und ich komm nicht weiter....

Des is ja doof, da geht man in ein Forum, damit man Hilfe bekommt und dann wird nicht mal bis zum Schluß geholfen.....;(


----------



## SlaterB (11. Apr 2012)

hierbei werde ich schon zu Ende helfen, 
ich sage dir nur dass du leichtfertig durch diese unsinnigen Fragen die vielleicht beste Hilfe verspielst 
die du hier bekommen kannst (auch wenn ich mich dabei gerade selber lobe  )

und dass du überhaupt kein SQL kannst, sondern andere Anführungszeichen setzen läßt,
ist keine echte Hilfe für ein Forum, sondern Arbeitsübertragung..


```
mSQL= "INSERT INTO Rezeptverwaltung (Name, Zutaten, Preis, Schwierigkeitsgrad, Gang, Rezept) VALUES ('"+
            this.name+"','"+this.zutaten+"','"+this.preis+"','"+this.schwierigkeitsgrad+"','"+this.gang+"','"+this.rezept+"')";
        objZugriff.oeffnen();
        objZugriff.aendern(mSQL);
        objZugriff.schliessen();
```
wenn es soweit hoffentlich die erste syntaktische Hürde nimmt, kann es natürlich noch zu vielen anderen Fehlern kommen,
etwa dass man Zahlen gar nicht in Hochkommas setzen soll, je nach Definition der DB-Felder


SQL musst du für sich lernen, da führt kein Weg vorbei,
wobei das Setzen von Anführungszeichen eher ein allgemeiner Intelligenz-Test ist, kann man kaum erlernen


----------



## ARadauer (11. Apr 2012)

SlaterB hat gesagt.:


> - zwischen jedem Wert gehört nicht nur ein einfaches Anführungszeichen ' sondern drei Zeichen: ','


weißt du was slater, gestern abend um 20:20 hatte ich schon die vermutung, dass einfach die Beistriche im Query fehlen... ich hatte es sogar schon stehen.
Aber nachdem er mir nach der Frage zum Query den ganzen Quellcode gepostest hat, dachte ich mir er verarscht mich..



> ich persönlich beende in Kürze die Teilnahme an diesem lustigen Spiel


ich gebs auch auf...



> zum einen scheiter ich an dem Begriff "String", zum anderen an "Benutzereingaben"


das ist lächerlich, du kannst keine Datenbankanwendung schreiben, wenn du nicht weißt was eine Eingabe vom Benutzer ist. Das geht nicht.
Der Begriff String ist so grundlegend. Wie willst du ein Autorennenfahren wenn du nicht weißt was Lenkrad bedeutet?

Du schickst Abfragen an eine Datenbank, wir fragen seit 2 Tagen was du genau an die Datenbank schickst. Das ist der Inhalt vom String mSQL.
Normalerweise würde man einfach die SQL Fehlermeldung posten und den String den man hin geschickt hast, dann wird dir nach 5 Minuten geholfen.

Aber du postest nach 5 mal nachfragen, immer das was du bei einem Fehler selber ausgibst.
 "Zuweisung fehlgeschlagen!" :toll:



> für mich is des ne ernste Sache und ich komm nicht weiter


Sorry, falls es eine Ausbildung oder Studium naja da bist du denk ich falsch...
Falls das einfach irgend ein Nebenfach im Abi ist ja dann gib halt irgendjemand € 200 für die Lösung und gut is....
Ich kann dir leider nicht helfen, wenn du nicht weißt was ein String ist..... sorry


----------



## derRote (11. Apr 2012)

1. Danke für deinen Post

2. Habe ich in der 12. Klasse im Unterricht SQL gelernt und dies auch auf Java übertragen wie ich es auch in der Schule gelernt habe 

3. Kann ich sehr wohl Kommas richtig setzen, leider habe ich es einfach so gelernt wie es unsere Lehrerin es uns gezeigt hat

Ich gebs bald auch auf hier.... und werde dieses Forum auch sicher nicht weiterempfehlen....


----------

