Einfache Persistenz hinzugefügt.

persistence
Oliver Hummel 2023-12-19 17:06:45 +01:00
parent bc3184ce5d
commit 353797a7a2
3 changed files with 41 additions and 3 deletions

View File

@ -1,8 +1,15 @@
package bank; package bank;
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.ArrayList;
public class Bank { public class Bank implements Serializable {
private String name; private String name;
private ArrayList<Bankkonto> kontenliste; private ArrayList<Bankkonto> kontenliste;
@ -16,6 +23,8 @@ public class Bank {
kontenliste.add(bk); kontenliste.add(bk);
// Speichern Methode 2: geänderte Daten speichern // Speichern Methode 2: geänderte Daten speichern
saveBankData(); // bzw. der Einfachheit halber: alle Daten ;-)
return bk.getKontonummer(); return bk.getKontonummer();
} }
@ -43,4 +52,30 @@ public class Bank {
return null; return null;
} }
// Die folgenden Persistenz-Methoden würde man in der Praxis in eine eigene
// Klasse auslagern.
private void saveBankData() {
ObjectOutputStream oos;
try {
oos = new ObjectOutputStream(new FileOutputStream("BankData.ser"));
oos.writeObject(this);
oos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static Bank loadBankData() {
try {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("BankData.ser"));
return (Bank) ois.readObject();
} catch (IOException | ClassNotFoundException e) {
System.err.println("Keine Daten gespeichert, initialisiere alle Daten neu.");
}
return new Bank("Spaßkasse");
}
} }

View File

@ -3,10 +3,12 @@ package bank;
import java.util.Scanner; import java.util.Scanner;
public class BankUI { public class BankUI {
private static Bank bank = new Bank("Spaßkasse"); private static Bank bank;
private static Scanner kb = new Scanner(System.in); private static Scanner kb = new Scanner(System.in);
public static void main(String[] args) { public static void main(String[] args) {
bank = Bank.loadBankData();
willkommen(); willkommen();
hauptmenü(); hauptmenü();
} }

View File

@ -1,8 +1,9 @@
package bank; package bank;
import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
public class Bankkonto { public class Bankkonto implements Serializable {
// sog. Geheimnisprinzip, Attribute bleiben // sog. Geheimnisprinzip, Attribute bleiben
// privat, Zugriff erfolgt nur über Methoden // privat, Zugriff erfolgt nur über Methoden
private String name; private String name;