From b427dffdefd620731dae3ab8207fb04fb3e720dc Mon Sep 17 00:00:00 2001 From: Alper2402 <2121675@stud.hs-mannheim.de> Date: Wed, 12 Oct 2022 09:59:17 +0200 Subject: [PATCH] =?UTF-8?q?Persistence=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bank-Beispiel/src/Konten.ser | 0 .../de/hs_mannheim/informatik/bank/Main.java | 22 +++++++++- .../informatik/bank/domain/Konto.java | 5 ++- .../informatik/bank/facade/Banksystem.java | 25 +++++++++++ .../de/hs_mannheim/informatik/bank/ui/UI.java | 4 +- .../src/persistence/PersistenceService.java | 42 +++++++++++++++++++ 6 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 Bank-Beispiel/src/Konten.ser create mode 100644 Bank-Beispiel/src/persistence/PersistenceService.java diff --git a/Bank-Beispiel/src/Konten.ser b/Bank-Beispiel/src/Konten.ser new file mode 100644 index 0000000..e69de29 diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java index 9fafdd1..ae6bfbb 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Main.java @@ -1,13 +1,33 @@ package de.hs_mannheim.informatik.bank; +import java.io.IOException; + import de.hs_mannheim.informatik.bank.facade.Banksystem; import de.hs_mannheim.informatik.bank.ui.UI; public class Main { - public static void main(String[] args) { + public static void main(String[] args) { Banksystem bs = new Banksystem("Spaßkasse Mannheim"); + + // Konten laden falls vorhanden + try { + bs.ladeKonten(); + } catch (ClassNotFoundException | IOException e) { + System.out.println("Laden fehlgeschlagen."); + e.printStackTrace(); + } + UI ui = new UI(bs); + + // Konten speichern (Wird beim Beenden des Programms ausgeführt) + try { + bs.speichereKonten(); + } catch (IOException e1) { + System.out.println("Speichern fehlgeschlagen."); + e1.printStackTrace(); + } + } } \ No newline at end of file diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java index c62f69b..fc17fb3 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java @@ -1,8 +1,11 @@ package de.hs_mannheim.informatik.bank.domain; +import java.io.Serializable; import java.util.ArrayList; -public class Konto { +import persistence.PersistenceService; + +public class Konto implements Serializable { private static int kontozaehler = 0; private ArrayList bewegungen = new ArrayList(); private int nummer; diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java index 8f2a647..9d58ea5 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java @@ -1,13 +1,19 @@ package de.hs_mannheim.informatik.bank.facade; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Collection; import de.hs_mannheim.informatik.bank.domain.Bank; import de.hs_mannheim.informatik.bank.domain.Konto; +import persistence.PersistenceService; public class Banksystem { private Bank bank; + private PersistenceService ps = new PersistenceService(); public Banksystem(String bankname) { this.bank = new Bank(bankname); @@ -46,6 +52,8 @@ public class Banksystem { // Betrag mit 2 Nachkommastellen für den User anzeigen lassen String betrag_aktuell = kontostandMitKomma(k); k.setBewegungen(betrag_aktuell + " (+)"); + DateTimeFormatter zeitformat = DateTimeFormatter.ofPattern("dd.MM.yyyy"); + LocalDateTime zeit = LocalDateTime.now(); return betrag_aktuell; } @@ -91,6 +99,19 @@ public class Banksystem { return k.getBewegungen(); } + public void speichereKonten() throws FileNotFoundException, IOException { + ArrayList konten = new ArrayList(bank.getKontenliste()); + ps.speichereKontodaten(konten); + } + + public void ladeKonten() throws FileNotFoundException, ClassNotFoundException, IOException { + ArrayList konten = new ArrayList(); + konten = ps.ladeKontodaten(); + for (Konto k: konten) { + bank.addKonto(k); + } + } + public String[] getKontenliste() { Collection konten = bank.getKontenliste(); String[] liste = new String[konten.size()]; @@ -103,6 +124,10 @@ public class Banksystem { return liste; } + public Collection getKonten() { + return bank.getKontenliste(); + } + public String getBankname() { return bank.getName(); } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java index 5cc410f..7a5595a 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java @@ -47,8 +47,8 @@ public class UI { } System.out.println("Auf Wiedersehen!"); - } // hauptmenü + private void kontenAnzeigen() { String[] konten = bs.getKontenliste(); @@ -71,7 +71,7 @@ public class UI { } private void kontoEinzahlen() { - //Kontonr und Betrag einlesen + // Kontonr und Betrag einlesen System.out.println("Kontonummer: "); int kontonr = sc.nextInt(); sc.nextLine(); diff --git a/Bank-Beispiel/src/persistence/PersistenceService.java b/Bank-Beispiel/src/persistence/PersistenceService.java new file mode 100644 index 0000000..25a4da6 --- /dev/null +++ b/Bank-Beispiel/src/persistence/PersistenceService.java @@ -0,0 +1,42 @@ +package persistence; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collection; + +import de.hs_mannheim.informatik.bank.domain.Konto; + +public class PersistenceService implements Serializable { + + public void speichereKontodaten(ArrayList konten) throws FileNotFoundException, IOException { + try { + FileOutputStream fop = new FileOutputStream("Konten.ser"); + ObjectOutputStream oos = new ObjectOutputStream(fop); + oos.writeObject(konten); + oos.close(); + } catch (IOException e) { + e.printStackTrace(); + System.out.println("Speichern fehlgeschlagen!!!!!!"); + } + } + + public ArrayList ladeKontodaten() throws FileNotFoundException, IOException, ClassNotFoundException { + ArrayList konten = null; + try { + ObjectInputStream ois = new ObjectInputStream(new FileInputStream("Konten.ser")); + konten = (ArrayList) ois.readObject(); + ois.close(); + } catch (IOException e) { + System.out.println("Laden fehlgeschlagen."); + } + return konten; + } + + +}