Java Kassensystem (Speichern von Warenkorb)?
Hallo zusammen,
Ich möchte momentan bei meinem Kassensystem eine Funktion hinzufügen, dass der Warenkorb gespeichert wird, wenn man sich abmeldet.
Mein Kassensystem funktioniert so:
Du bist im Hauptmenü und registrierst dich/loggst dich ein. Daraufhin kannst du dir die Artikel, die du einkaufen möchtest entweder anzeigen lassen, oder in den Warenkorb hinzufügen per Eingabe der Nummern. Außerdem gibt es noch den Unterpunkt "Abmelden" und "Zurück zum Hauptmenü".
Ich möchte jetzt, dass sich der Warenkorb speichert falls sich eine Person abmeldet.
Ich nehme mal ein Beispiel:
Person A registriert sich bei meinem Kassensystem und loggt sich ein. Person A fügt dem Warenkorb 4 Artikel zu, muss aber aus Zeitgründen weg, und meldet sich ab. Person B loggt sich ein, soll ein leeren Warenkorb vorfinden, und Artikel ohne Einfluss von Person A kaufen können.
Wenn sich Person A wieder einloggt, soll er seine in dem Warenkorb hinterlegten Artikel wieder vollständig vorfinden.
Ich freue mich über jeden hilfreichen Tipp zu dieser Frage.
Mit freundlichen Grüßen
Loewebogen067
3 Antworten
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
Sollen die Daten den persistent gespeichert werden, sodass sie auch nach einem Neustart der Anwendung wieder verfügbar sind? Denn in dem Fall wäre es notwendig, diese in einer externen Darstellung (Datei, Datenbank, ...) zu speichern.
Zum Lesen und Schreiben von Dateien kannst du bspw. hier nachschlagen:
Entscheide dich bestenfalls für ein Format (CSV, INI, XML, JSON, ...), in dem du die Daten ablegst. So kannst du sie später wieder besser auslesen.
Artikel dazu findest du bspw. hier:
- Serialization of Java Objects to XML
- Properties
- Datenformate (zu CSV, Properties, JSON)
Andernfalls kannst du dir natürlich auch ein eigenes Format ausdenken oder die Daten einfach binär abspeichern.
Innerhalb des Programms würde ich die Daten entweder in einer Liste halten oder einer Map.
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
Dann solltest Du noch beschreiben, wo der Warenkorb gespeichert werden soll.
- Cookies im Browser des Anwenders
- Datenbank bei Dir
- Dateisystem bei Dir
Bei den letzten beiden musst Du jeweils eine ID des potentiellen Kunden mitspeichern und bei auslesen danach filtern.
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
Dan speichere es in einer Datei mit der ID des Kunden im Dateinamen.
KundenID = 4711. Dateiname = "Warenkorb_4711.txt"
![](https://images.gutefrage.net/media/user/Huhngut/1568027905111_nmmslarge__0_0_199_199_26ebd64023f617de16e3891dae8c68ce.jpg?v=1568027905000)
In ne txt schreiben oder mit properties
Schreib mich sonst auf discord an Huhngut#2117
Ich arbeite noch nicht mit einer Datenbank.
Wenn das Programm geschlossen wird, sind auch die Daten weg. Es geht nur darum, es im aktuellen Programm zu speichern.
(Ich arbeite erst seit c.a. 3 Wochen mit Java)