Rückwärts-Button

Prinz92

Mitglied
Hallo zusammen,

bin neu hier im Forum und ärgere mich schon die ganzen letzten Tage mit einem Problem herum, dass ich einfach nicht in den Griff bekomme.
Arbeite in der Schule zur Zeit im Team an einem Java-Projekt, in dem wir eine Haushaltsdatenbank erstellen möchten. Das ganze soll in etwa so funktionieren:

1. User gibt Daten zu einem zugehörigen Beleg ein (Beleg_nr., Verwendungszweck, Betrag, Datum... etc.)
2. Java speichert diese mittels SQL-Befehl in eine Access-Datenbank
3. In einem anderen Menü "Belegübersicht" ist es dem User möglich, mittels Vorwärts- und Rückwärts-Button zwischen den einzelnen, bereits gespeicherten Belegen hin- und her zu switchen.

Die Punkte eins bis zwei funktionieren einwandfrei... und bei dem dritten Punkte funktioniert die Vorwärts-Methode auch problemlos... hier mal der zugehörige Java-Quellcode für die Vowärts-Methode:

Java:
public boolean nächster()
			{
				try {
					 	
					if(rs.next())
					 		{				

					 			akt_Beleg.setBeleg_nr(rs.getInt("Beleg_Nr"));
					 			akt_Beleg.setKategorie(rs.getString("Kategorie"));
					 			akt_Beleg.setVerwendungszweck(rs.getString("Verwendungszweck"));
					 			akt_Beleg.setBetrag(rs.getDouble("Betrag"));
					 			akt_Beleg.setTag(rs.getInt("Tag"));
					 			akt_Beleg.setMonat(rs.getInt("Monat"));
					 			akt_Beleg.setJahr(rs.getInt("Jahr"));
					 			akt_Beleg.setKommentar(rs.getString("Kommentar"));
					 		
					 			return true;
					 		}
					 	else
					 		{						
					 			this.lies_rs();
					 			return false;
					 		}
				 	}
				 catch (SQLException err) 
				 	{
						System.out.println("Fehler in next");
						return false;
					}	
			}

Problematisch erscheint jetzt allerdings die Methode für den Rückwärts-Button... Hier gibt es von der Java-Bibliothek keine vorgegebene Methode, wie beim Vorwärts-Button "rs.next()"...

Bisher sieht meine Rückwärts-Methode so aus:

Java:
public boolean rückwärts() 
			{
					Beleg neu = null;
					Beleg alt = this.akt_Beleg;
					Beleg vorheriger;
			
					this.nächster();
			 	while(true)	 	
				 	{
				 		vorheriger = this.akt_Beleg;				 		
				 		if(neu != alt) 
				 		{
				 			this.nächster();
				 			neu = this.akt_Beleg;
				 		}
				 		return true;
				 	}
			
			}

.... aber wie ihr euch sicher denken könnt, funktioniert das nicht so wirklich.
Bin als Java-Einsteiger jedoch an meine Grenzen angelangt, und hoffe nun ein Experte hier könnte mir helfen ;-).

Freundliche Grüße und vielen Dank im voraus!
 

Prinz92

Mitglied
Danke für deine Antwort, wenn ich jedoch die rs.previous()-Methode verwende, wird mir eine Fehlermeldung angezeigt. In meinem Fall also: "Fehler in next"...
??
 

eRaaaa

Top Contributor
Wenn du die richtige Exception-Meldung posten würdest, könnte man sicherlich mehr sagen. Könnte sein dass die Methode nicht implementiert ist ?! Mhm, andere Möglichkeit wäre eben beispielsweise vorwärts normal durch zu laufen, alles in eine List stecken und diese dann rückwärts durchlaufen bzw, entsprechend iterieren. Kann man ja in kleineren Schritten machen, man muss sich ja nicht alle Ergebnisse sofort aus der DB holen...

[edit]
Du bekommst kein Stacktrace? Welch ein Wunder :bae:
[/edit]
 
Zuletzt bearbeitet:

Prinz92

Mitglied
Java:
	public boolean rückwärts() 
			{
			try {
				 	
				if(rs.previous())
				 		{				

				 			akt_Beleg.setBeleg_nr(rs.getInt("Beleg_Nr"));
				 			akt_Beleg.setKategorie(rs.getString("Kategorie"));
				 			akt_Beleg.setVerwendungszweck(rs.getString("Verwendungszweck"));
				 			akt_Beleg.setBetrag(rs.getDouble("Betrag"));
				 			akt_Beleg.setTag(rs.getInt("Tag"));
				 			akt_Beleg.setMonat(rs.getInt("Monat"));
				 			akt_Beleg.setJahr(rs.getInt("Jahr"));
				 			akt_Beleg.setKommentar(rs.getString("Kommentar"));
				 		
				 			return true;
				 		}
				 	else
				 		{						
				 			this.lies_rs();
				 			return false;
				 		}
			 	}
			 catch (SQLException err) 
			 	{
			
				 System.out.println("Fehler in previous");
				 return false;
				}	
		}

Es kommt keine Fehlermeldung, die Methode wird jedoch nicht umgesetzt, anstattdessen kommt die von mir eingefügte Meldung: "Fehler in previous"...
 
I

irgendjemand

Gast
was ist an StackTrace nicht zu verstehen ?

Java:
err.printStackTrace();

da steht dann auch genau der fehler ...


wovon ich aber ausgehe : das statement wurde falsch initialisiert .. sprich : der parameter zur wahlfreien navigation wurde nicht übergeben wesshalb ResultSet.previous() nacht DOC richtigerweise eine Exception wirft
 

bERt0r

Top Contributor
Ich würde auf kein Resultset im Speicher halten und für eine vor/zurück Funktion darin hin und herspringen. Wie eraaa sagte würde ich das ganze in eine Liste stecken und darin herumbrowsen. Manche ResultSets können nämlich nur in eine Richtung durchlaufen werden.
Ist eine Connection eigentlich blockiert solange man ein ResultSet offen hält? Ich google mal.
 

Prinz92

Mitglied
Sorry, aber bin noch absolut unvertraut mit dem Programm... in der Oberstufe geht es halt einfach nicht so schnell und tiefgründig voran wie an der Uni ;-)...


Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem:
Die Methode rückwärts() ist für den Typ DB_ZugriffBeleg nicht definiert (undefined)


Hoffe ihr könnt etwas damit anfangen.

Grüße

Nachtrag: Gäbe es nicht eine Möglichkeit, dass mit einer while-Schleife zu realisieren?
Das ich quasi sage, ich springe so lange einen Datensatz weiter, bis ich bei dem Datensatz VOR dem aktuellen Datensatz angekommen bin?

Bin wirklich ratlos, bitte daher nochmal um Hilfe...
 

Helgon

Bekanntes Mitglied
Warum speicherst du dir dein Ergebnis nicht in irgend einer Datenstruktur und hüpfst dann über nen Index nach vorne/zurück?
 

MJ

Neues Mitglied
Ich denke, dass Prinz einen Algorithmus sucht um ein gegenstück zu rs.next(); zu finden.

Möglichkeiten hierfür wäre z.B. der gebrauch einer Arraylist.

1. Du öffnest deine Datenbank in der Methode neu, so dass du dich am Anfang dieser befindest.
2. Du fügst mit Hilfe einer Whileschleife alle Datensätze an die Arraylist an, bis du bei deinem aktuellen angekommen bist (der von dem du zurück möchtest).
3. Du lässt dir die größe der liste geben.
4. Diese größe subtrahierst du mit 2 (Wichtig arraylist beginnt bei 0 mit dem Inhalt)
5. anschließend lässt du dir den datensatz mit der Indexzahl = größe - 2; ausgeben.

Probleme wird es geben, wenn du beim ersten Datensatz bist, deshalb ist an dieser Lösung noch etwas zu Feilen.

Andere möglichkeit wäre so lange vorwärts zu gehen, bis du bei dem datensatz vorher angekommen bist.

Sprich:

1. du weist deinem aktuellen Datensatz eine variable zu zB: "alt"
2. dann musst du noch eine variable an den aktuellen datensatz anfügen zB. "zurück" (für später wichtig)
3. du gehst einen Datensatz weiter mit rs.next();
4. du vergleichst den aktuellen Datensatz mit dem Datensatz alt. -> ( = bedingung für whileschleife)
5. Ist dieser ungleich, gehst du weiter im Datenblatt.
--> hier muss die whileschleife rein
6. du weist wieder zuerst deine variable "zurück" dem aktuellen Datensatz zu
7. du machst wieder rs.next();
8. du vergleichst wieder den aktuellen wert mit dem wert alt.
9. ist der gleich, weist du, dass deine Variable "zurück" dem wert vor deinem Anfangswert ist.


Hoffe ich konnte dir Helfen, evtl. haben die anderen noch eine Idee zum verfeinern meiner Vorschläge.

Lg

MJ
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
julian0507 Wörter einlesen lassen und rückwärts ausgeben Java Basics - Anfänger-Themen 7
M Array rückwärts ausgeben Java Basics - Anfänger-Themen 2
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
A Doppelt verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 17
P Caesarverschlüsselung Rückwärts Java Basics - Anfänger-Themen 2
S Mit einer LinkedList vorwärts und rückwärts iterieren Java Basics - Anfänger-Themen 6
C Array Rückwärts ausgeben Java Basics - Anfänger-Themen 7
J Mit for Schleife einen String Rückwärts befüllen Java Basics - Anfänger-Themen 9
N Verkettete liste rückwärts ausgeben Java Basics - Anfänger-Themen 18
L Array vorwärts und rückwärts ausgeben Java Basics - Anfänger-Themen 3
V Verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 3
C Chars eines Strings mit for schleife rückwärts auslesen Java Basics - Anfänger-Themen 8
J char-Array rückwärts ausgeben und in neues Char-Array speichern Java Basics - Anfänger-Themen 3
M Input/Output Text rückwärts ausgeben Java Basics - Anfänger-Themen 10
J Compiler-Fehler Array rückwärts ausgeben Java Basics - Anfänger-Themen 3
B Alphabet rückwärts ausgeben Java Basics - Anfänger-Themen 15
S Verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 12
C Array rückwärts auslesen Java Basics - Anfänger-Themen 4
S Collection rückwärts durchsuchen Java Basics - Anfänger-Themen 4
S Ausgabe Rückwärts ausgeben?? Java Basics - Anfänger-Themen 9
-horn- "Berechnung vorwärts, Optimierung rückwärts?" - Wie würdet ihr das machen? Java Basics - Anfänger-Themen 8
H Datei zeilenweise rückwärts lesen Java Basics - Anfänger-Themen 9
M ArrayList rückwärts durchgehen? Java Basics - Anfänger-Themen 9
M strings rückwärts abspielen (schleife?) Java Basics - Anfänger-Themen 33
Bierhumpen Warum gibt er die Liste rückwärts aus! Java Basics - Anfänger-Themen 12
L String rückwärts ausgeben Java Basics - Anfänger-Themen 17
D wort rückwärts Java Basics - Anfänger-Themen 9
A Vector rückwärts ausgeben Java Basics - Anfänger-Themen 10
A Inhalt eines Vectors rückwärts ausgeben Java Basics - Anfänger-Themen 14
Rookar Mit Button andere java öffnen Java Basics - Anfänger-Themen 4
Maxq Klassen Actionen in Button implementieren Java Basics - Anfänger-Themen 6
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
JavaBeginner22 Button Text verändern Java Basics - Anfänger-Themen 1
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
B Zurück Button erstellen Java Basics - Anfänger-Themen 1
Tom/S Button info Java Basics - Anfänger-Themen 2
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
T JSP, Button-Color change. Java Basics - Anfänger-Themen 1
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
S Erste Schritte Button einen Wert zuweisen & diesen ausgeben Java Basics - Anfänger-Themen 2
S Counter Label Button Java Basics - Anfänger-Themen 4
J Button über Pfeiltasten bewegen Java Basics - Anfänger-Themen 8
J Button als Feld nutzen Java Basics - Anfänger-Themen 17
A JOPtionPaneOptionDialog Abfrage welcher Button gedrückt wurde? Java Basics - Anfänger-Themen 8
J JavaFX Label,Button zur Laufzeit Java Basics - Anfänger-Themen 30
B Button soll sowohl auf Klicken als auch auf die Enter-Taste reagieren Java Basics - Anfänger-Themen 9
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
G JTextField per Button speichern und an andere Klasse übergeben Java Basics - Anfänger-Themen 2
J Spiel mit Button klick starten Java Basics - Anfänger-Themen 9
X TextField-Inhalt mit Button in .txt-Datei speichern Java Basics - Anfänger-Themen 16
J Button klick bei eine bestimmten Zahl Java Basics - Anfänger-Themen 8
S JFrame mit Hintergrundbild und Button Java Basics - Anfänger-Themen 4
P Upload Button funktioniert nicht Java Basics - Anfänger-Themen 13
I Ordnung JLayeredPane mit Button ändern Java Basics - Anfänger-Themen 5
A JLabel mit button drücken verändern Java Basics - Anfänger-Themen 6
H Swing Button hat falsche Größe Java Basics - Anfänger-Themen 5
CptK mit javafx button erstellen Java Basics - Anfänger-Themen 1
AppGuruCode962 Button mit Textfield verbinden Java Basics - Anfänger-Themen 13
L Java gui reset button Fehler!? Java Basics - Anfänger-Themen 2
L Java reset button Problem Java Basics - Anfänger-Themen 3
L Java reset button Problem Java Basics - Anfänger-Themen 9
L Erste Schritte AndroidStudio Button - Nur Großbuchstaben Java Basics - Anfänger-Themen 2
V JAVA Button Java Basics - Anfänger-Themen 4
M Listener für Button - Wert von Variablen verändern Java Basics - Anfänger-Themen 14
S OOP Button erst nach 2x klicken deaktivieren Java Basics - Anfänger-Themen 4
J Button in anderer Klasse ändern Java Basics - Anfänger-Themen 3
A Fenster mit Button aufrufen Java Basics - Anfänger-Themen 3
V Button/Event wird nicht ausgeführt, was tun? Java Basics - Anfänger-Themen 2
J Bild in Button einsetzen Java Basics - Anfänger-Themen 6
S button kommt durch bild Java Basics - Anfänger-Themen 13
I GUI Button Postition festlegen Java Basics - Anfänger-Themen 4
Tacofan Welcher Button wurde zuerst gedrückt? Java Basics - Anfänger-Themen 4
K Interface Fenster mit 3 ComboBoxen und 1 Button Java Basics - Anfänger-Themen 13
J Best Practice Button isPressed o.ä. auswerten Java Basics - Anfänger-Themen 10
S zahl hoch und runter zählen per button Java Basics - Anfänger-Themen 25
G Email-sending Button Java Basics - Anfänger-Themen 9
K Input/Output JCheckBox mit Bestätigungs-Button Java Basics - Anfänger-Themen 22
A Nach Druck eines Buttons reagieren andere Button nicht Java Basics - Anfänger-Themen 3
P Auf Button-Klick außerhalb der GUI-Klasse reagieren Java Basics - Anfänger-Themen 10
C Ein Button soll Focus rausfinden und Methode starten Java Basics - Anfänger-Themen 9
S mit Java HTML Button drücken "lassen" Java Basics - Anfänger-Themen 8
GadgetSofa jComboBox mit dem Button verbinden. Aber wie?? Java Basics - Anfänger-Themen 4
R Button soll Wert 1 in Variable schreiben Java Basics - Anfänger-Themen 4
D Zurück Button -- Background wird nicht angezeigt Java Basics - Anfänger-Themen 4
S Button "Berechnen" geht nicht Java Basics - Anfänger-Themen 3
H Text in einen Button quetschen Java Basics - Anfänger-Themen 3
S Input/Output In Java Swing auf Button warten? Java Basics - Anfänger-Themen 9
B Home Button ausbleden ? Java Basics - Anfänger-Themen 8
M JMenuItem per Button hinzufügen Java Basics - Anfänger-Themen 2
T Eclipse kennt mein Button nicht... Java Basics - Anfänger-Themen 5
Chava Testprojekt.Text.Image.Button Java Basics - Anfänger-Themen 4
G Button Event Java Basics - Anfänger-Themen 6
S Methode pausieren bis Button gedrückt wird Java Basics - Anfänger-Themen 5
K Button's mit versch. Aufgaben/ActionListener Java Basics - Anfänger-Themen 12
J Button erstellen mit for-Schleife Java Basics - Anfänger-Themen 10
llabusch Fenster per Button verschieben Java Basics - Anfänger-Themen 5
J Button wird nicht angezeigt (GUI) Java Basics - Anfänger-Themen 7
I Button abfragen ob er geklickt wurde Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben