KUNDEN und ARTIKEL die XML-Methoden in entsprechenden Controller Klassen

ausgelagert. STARTUPMENUE funktionen übergeben. -> Main ist ausführbar -
Dateinamen von Kunden und Artikeln noch im Konflikt
master
denis 2024-06-14 12:42:41 +02:00
parent 88ad78ac3e
commit 17d389ab2c
5 changed files with 321 additions and 358 deletions

View File

@ -0,0 +1,130 @@
package controller;
import model.Artikel;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class ArtikelController {
// Methode zum Speichern der Artikeldaten im XML-Format
public static void speichereAlsXML(Artikel artikel) {
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();
// Root-Element
Element rootElement = doc.createElement("Artikel");
doc.appendChild(rootElement);
// Artikelnummer-Element
Element nummerElement = doc.createElement("Artikelnummer");
nummerElement.appendChild(doc.createTextNode(Integer.toString(artikel.getArtikelnummer())));
rootElement.appendChild(nummerElement);
// Einheit-Element
Element einheitElement = doc.createElement("Einheit");
einheitElement.appendChild(doc.createTextNode(artikel.getEinheit()));
rootElement.appendChild(einheitElement);
// Bezeichnung-Element
Element bezeichnungElement = doc.createElement("Bezeichnung");
bezeichnungElement.appendChild(doc.createTextNode(artikel.getBezeichnung()));
rootElement.appendChild(bezeichnungElement);
// Nettopreis-Element
Element nettopreisElement = doc.createElement("Nettopreis");
nettopreisElement.appendChild(doc.createTextNode(Double.toString(artikel.getNettopreis())));
rootElement.appendChild(nettopreisElement);
// Mehrwertsteuersatz-Element
Element mehrwertsteuersatzElement = doc.createElement("Mehrwertsteuersatz");
mehrwertsteuersatzElement.appendChild(doc.createTextNode(Double.toString(artikel.getMehrwertsteuersatz())));
rootElement.appendChild(mehrwertsteuersatzElement);
// Transformieren und Speichern in Datei
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(Integer.toString(artikel.getArtikelnummer()) + ".xml"));
transformer.transform(source, result);
System.out.println("Die XML-Datei wurde erfolgreich gespeichert.");
} catch (ParserConfigurationException | TransformerException e) {
e.printStackTrace();
}
}
// Methode zum Auslesen der Artikeldaten aus einer XML-Datei
public static Artikel leseAusXML(int artikelnummer) {
try {
File xmlDatei = new File(Integer.toString(artikelnummer) + ".xml");
Artikel artikel = new Artikel(artikelnummer);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlDatei);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("Artikel");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
artikel.setArtikelnummer(Integer.parseInt(eElement.getElementsByTagName("Artikelnummer").item(0).getTextContent()));
artikel.setEinheit(eElement.getElementsByTagName("Einheit").item(0).getTextContent());
artikel.setBezeichnung(eElement.getElementsByTagName("Bezeichnung").item(0).getTextContent());
artikel.setNettopreis(Double.parseDouble(eElement.getElementsByTagName("Nettopreis").item(0).getTextContent()));
artikel.setMehrwertsteuersatz(Double.parseDouble(eElement.getElementsByTagName("Mehrwertsteuersatz").item(0).getTextContent()));
}
}
System.out.println("Die XML-Datei wurde erfolgreich gelesen.");
return artikel;
} catch (ParserConfigurationException | SAXException | IOException e) {
e.printStackTrace();
}
return null;
}
// Methode zum Auslesen der Artikeldaten aus einer XML-Datei und in der Konsole ausgeben
public static void leseUndGibAusXML(Artikel artikel, String dateiPfad) {
leseUndGibAusXML(artikel, dateiPfad);
artikel.anzeigen();
}
// Methode zur Eingabe der Artikeldaten über die Konsole
public static void eingabeDaten(Artikel artikel, Scanner scanner) {
System.out.print("Einheit: ");
artikel.setEinheit(scanner.nextLine());
System.out.print("Bezeichnung: ");
artikel.setBezeichnung(scanner.nextLine());
System.out.print("Nettopreis: ");
artikel.setNettopreis(Double.parseDouble(scanner.nextLine()));
System.out.print("Mehrwertsteuersatz: ");
artikel.setMehrwertsteuersatz(Double.parseDouble(scanner.nextLine()));
}
}

View File

@ -12,32 +12,30 @@ import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.Element; import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.Scanner;
public class KundenController { public class KundenController {
public void speichereKundeInXML(Kunde kunde) { // Methode zum Speichern der Kundendaten im XML-Format
public static void speichereAlsXML(Kunde kunde) {
try { try {
// Ordner "Kunden" erstellen, falls er nicht existiert
File ordner = new File("Kunden");
if (!ordner.exists()) {
ordner.mkdirs();
}
// XML-Dokument erstellen
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument(); Document doc = dBuilder.newDocument();
// Root-Element "Kunde" // Root-Element
Element rootElement = doc.createElement("Kunde"); Element rootElement = doc.createElement("Kunde");
doc.appendChild(rootElement); doc.appendChild(rootElement);
// Kundennummer-Element // Kundennummer-Element
Element kundennummerElement = doc.createElement("Kundennummer"); Element nummerElement = doc.createElement("Kundennummer");
kundennummerElement.appendChild(doc.createTextNode(Integer.toString(kunde.getKundennummer()))); nummerElement.appendChild(doc.createTextNode(Integer.toString(kunde.getKundennummer())));
rootElement.appendChild(kundennummerElement); rootElement.appendChild(nummerElement);
// Name-Element // Name-Element
Element nameElement = doc.createElement("Name"); Element nameElement = doc.createElement("Name");
@ -69,18 +67,83 @@ public class KundenController {
ansprechpartnerElement.appendChild(doc.createTextNode(kunde.getAnsprechpartner())); ansprechpartnerElement.appendChild(doc.createTextNode(kunde.getAnsprechpartner()));
rootElement.appendChild(ansprechpartnerElement); rootElement.appendChild(ansprechpartnerElement);
// XML in Datei speichern // Transformieren und Speichern in Datei
TransformerFactory transformerFactory = TransformerFactory.newInstance(); TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer(); Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc); DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(ordner, "kunde_" + kunde.getKundennummer() + ".xml")); StreamResult result = new StreamResult(new File(Integer.toString(kunde.getKundennummer()) + ".xml"));
transformer.transform(source, result); transformer.transform(source, result);
System.out.println("Kundendaten wurden erfolgreich in XML-Datei gespeichert."); System.out.println("Die XML-Datei wurde erfolgreich gespeichert.");
} catch (ParserConfigurationException | TransformerException e) { } catch (ParserConfigurationException | TransformerException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
// Methode zum Auslesen der Kundendaten aus einer XML-Datei
public static Kunde leseAusXML(int kundennummer) {
try {
File xmlDatei = new File(Integer.toString(kundennummer) + ".xml");
Kunde kunde = new Kunde(kundennummer);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlDatei);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("Kunde");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
kunde.setKundennummer(Integer.parseInt(eElement.getElementsByTagName("Kundennummer").item(0).getTextContent()));
kunde.setName(eElement.getElementsByTagName("Name").item(0).getTextContent());
kunde.setAnschrift(eElement.getElementsByTagName("Anschrift").item(0).getTextContent());
kunde.setEmail(eElement.getElementsByTagName("Email").item(0).getTextContent());
kunde.setTelefonnummer(eElement.getElementsByTagName("Telefonnummer").item(0).getTextContent());
kunde.setIstKleinunternehmer(Boolean.parseBoolean(eElement.getElementsByTagName("Kleinunternehmer").item(0).getTextContent()));
kunde.setAnsprechpartner(eElement.getElementsByTagName("Ansprechpartner").item(0).getTextContent());
}
}
System.out.println("Die XML-Datei wurde erfolgreich gelesen.");
return kunde;
} catch (ParserConfigurationException | SAXException | IOException e) {
e.printStackTrace();
}
return null;
}
// Methode zum Auslesen der Kundendaten aus einer XML-Datei und in der Konsole ausgeben
public static void leseUndGibAusXML(Kunde kunde, String dateiPfad) {
leseUndGibAusXML(kunde, dateiPfad);
kunde.anzeigen();
}
// Methode zur Eingabe der Kundendaten über die Konsole
public static void eingabeDaten(Kunde kunde, Scanner scanner) {
System.out.print("Name: ");
kunde.setName(scanner.nextLine());
System.out.print("Anschrift: ");
kunde.setAnschrift(scanner.nextLine());
System.out.print("Email: ");
kunde.setEmail(scanner.nextLine());
System.out.print("Telefonnummer: ");
kunde.setTelefonnummer(scanner.nextLine());
System.out.print("Ist der Kunde ein Kleinunternehmer (true/false)? ");
kunde.setIstKleinunternehmer(Boolean.parseBoolean(scanner.nextLine()));
System.out.print("Ansprechpartner: ");
kunde.setAnsprechpartner(scanner.nextLine());
}
} }

View File

@ -1,23 +1,5 @@
package model; package model;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class Artikel { public class Artikel {
private static int aktuelleArtikelnummer = 0; // Statische Variable für fortlaufende Artikelnummer private static int aktuelleArtikelnummer = 0; // Statische Variable für fortlaufende Artikelnummer
private int artikelnummer; private int artikelnummer;
@ -35,11 +17,21 @@ public class Artikel {
this.mehrwertsteuersatz = mehrwertsteuersatz; this.mehrwertsteuersatz = mehrwertsteuersatz;
} }
public Artikel(int artikelnummer) {
this.artikelnummer = artikelnummer;
}
// Leerer Konstruktor // Leerer Konstruktor
public Artikel() { public Artikel() {
this.artikelnummer = ++aktuelleArtikelnummer; // Vergabe der Artikelnummer und Inkrement this.artikelnummer = ++aktuelleArtikelnummer; // Vergabe der Artikelnummer und Inkrement
} }
public void setArtikelnummer(int artikelnummer) {
this.artikelnummer = artikelnummer;
}
// Getter und Setter // Getter und Setter
public int getArtikelnummer() { public int getArtikelnummer() {
return artikelnummer; return artikelnummer;
@ -85,110 +77,4 @@ public class Artikel {
System.out.println("Nettopreis: " + nettopreis); System.out.println("Nettopreis: " + nettopreis);
System.out.println("Mehrwertsteuersatz: " + mehrwertsteuersatz); System.out.println("Mehrwertsteuersatz: " + mehrwertsteuersatz);
} }
// Methode zum Speichern der Artikeldaten im XML-Format
public void speichereAlsXML(String dateiPfad) {
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();
// Root-Element
Element rootElement = doc.createElement("Artikel");
doc.appendChild(rootElement);
// Artikelnummer-Element
Element nummerElement = doc.createElement("Artikelnummer");
nummerElement.appendChild(doc.createTextNode(Integer.toString(artikelnummer)));
rootElement.appendChild(nummerElement);
// Einheit-Element
Element einheitElement = doc.createElement("Einheit");
einheitElement.appendChild(doc.createTextNode(einheit));
rootElement.appendChild(einheitElement);
// Bezeichnung-Element
Element bezeichnungElement = doc.createElement("Bezeichnung");
bezeichnungElement.appendChild(doc.createTextNode(bezeichnung));
rootElement.appendChild(bezeichnungElement);
// Nettopreis-Element
Element nettopreisElement = doc.createElement("Nettopreis");
nettopreisElement.appendChild(doc.createTextNode(Double.toString(nettopreis)));
rootElement.appendChild(nettopreisElement);
// Mehrwertsteuersatz-Element
Element mehrwertsteuersatzElement = doc.createElement("Mehrwertsteuersatz");
mehrwertsteuersatzElement.appendChild(doc.createTextNode(Double.toString(mehrwertsteuersatz)));
rootElement.appendChild(mehrwertsteuersatzElement);
// Transformieren und Speichern in Datei
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(dateiPfad));
transformer.transform(source, result);
System.out.println("Die XML-Datei wurde erfolgreich gespeichert.");
} catch (ParserConfigurationException | TransformerException e) {
e.printStackTrace();
}
}
// Methode zum Auslesen der Artikeldaten aus einer XML-Datei
public void leseAusXML(String dateiPfad) {
try {
File xmlDatei = new File(dateiPfad);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlDatei);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("Artikel");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
this.artikelnummer = Integer.parseInt(eElement.getElementsByTagName("Artikelnummer").item(0).getTextContent());
this.einheit = eElement.getElementsByTagName("Einheit").item(0).getTextContent();
this.bezeichnung = eElement.getElementsByTagName("Bezeichnung").item(0).getTextContent();
this.nettopreis = Double.parseDouble(eElement.getElementsByTagName("Nettopreis").item(0).getTextContent());
this.mehrwertsteuersatz = Double.parseDouble(eElement.getElementsByTagName("Mehrwertsteuersatz").item(0).getTextContent());
}
}
System.out.println("Die XML-Datei wurde erfolgreich gelesen.");
} catch (ParserConfigurationException | SAXException | IOException e) {
e.printStackTrace();
}
}
// Methode zum Auslesen der Artikeldaten aus einer XML-Datei und in der Konsole ausgeben
public void leseUndGibAusXML(String dateiPfad) {
leseAusXML(dateiPfad);
anzeigen();
}
// Methode zur Eingabe der Artikeldaten über die Konsole
public void eingabeDaten(Scanner scanner) {
System.out.print("Einheit: ");
this.einheit = scanner.nextLine();
System.out.print("Bezeichnung: ");
this.bezeichnung = scanner.nextLine();
System.out.print("Nettopreis: ");
this.nettopreis = Double.parseDouble(scanner.nextLine());
System.out.print("Mehrwertsteuersatz: ");
this.mehrwertsteuersatz = Double.parseDouble(scanner.nextLine());
}
} }

View File

@ -1,236 +1,102 @@
package model; package model;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class Kunde { public class Kunde {
private static int aktuelleKundennummer = 0; // Statische Variable für fortlaufende Kundennummer private static int aktuelleKundennummer = 0; // Statische Variable für fortlaufende Kundennummer
private int kundennummer; private int kundennummer;
private String name; private String name;
private String anschrift; private String anschrift;
private String email; // Straße - PLZ - Ort
private String telefonnummer; private String email;
private boolean istKleinunternehmer; private String telefonnummer;
private String ansprechpartner; private boolean istKleinunternehmer;
private String ansprechpartner;
// Konstruktor // Konstruktor
public Kunde(String name, String anschrift, String email, String telefonnummer, boolean istKleinunternehmer, public Kunde(String name, String anschrift, String email, String telefonnummer, boolean istKleinunternehmer,
String ansprechpartner) { String ansprechpartner) {
this.kundennummer = ++aktuelleKundennummer; // Vergabe der Kundennummer und Inkrement this.kundennummer = ++aktuelleKundennummer; // Vergabe der Kundennummer und Inkrement
this.name = name; this.name = name;
this.anschrift = anschrift; this.anschrift = anschrift;
this.email = email; this.email = email;
this.telefonnummer = telefonnummer; this.telefonnummer = telefonnummer;
this.istKleinunternehmer = istKleinunternehmer; this.istKleinunternehmer = istKleinunternehmer;
this.ansprechpartner = ansprechpartner; this.ansprechpartner = ansprechpartner;
} }
// Leerer Konstruktor public Kunde(int kundennummer) {
public Kunde() { this.kundennummer = kundennummer;
this.kundennummer = ++aktuelleKundennummer; // Vergabe der Kundennummer und Inkrement }
}
// Getter und Setter // Leerer Konstruktor
public int getKundennummer() { public Kunde() {
return kundennummer; this.kundennummer = ++aktuelleKundennummer; // Vergabe der Kundennummer und Inkrement
} }
public String getName() { // Getter und Setter
return name; public int getKundennummer() {
} return kundennummer;
}
public void setName(String name) { public void setKundennummer(int kundennummer) {
this.name = name; this.kundennummer = kundennummer;
} }
public String getAnschrift() { public String getName() {
return anschrift; return name;
} }
public void setAnschrift(String anschrift) { public void setName(String name) {
this.anschrift = anschrift; this.name = name;
} }
public String getEmail() { public String getAnschrift() {
return email; return anschrift;
} }
public void setEmail(String email) { public void setAnschrift(String anschrift) {
this.email = email; this.anschrift = anschrift;
} }
public String getTelefonnummer() { public String getEmail() {
return telefonnummer; return email;
} }
public void setTelefonnummer(String telefonnummer) { public void setEmail(String email) {
this.telefonnummer = telefonnummer; this.email = email;
} }
public boolean isIstKleinunternehmer() { public String getTelefonnummer() {
return istKleinunternehmer; return telefonnummer;
} }
public void setIstKleinunternehmer(boolean istKleinunternehmer) { public void setTelefonnummer(String telefonnummer) {
this.istKleinunternehmer = istKleinunternehmer; this.telefonnummer = telefonnummer;
} }
public String getAnsprechpartner() { public boolean isIstKleinunternehmer() {
return ansprechpartner; return istKleinunternehmer;
} }
public void setAnsprechpartner(String ansprechpartner) { public void setIstKleinunternehmer(boolean istKleinunternehmer) {
this.ansprechpartner = ansprechpartner; this.istKleinunternehmer = istKleinunternehmer;
} }
// Methode zum Anzeigen der Kundendaten public String getAnsprechpartner() {
public void anzeigen() { return ansprechpartner;
System.out.println("Kundennummer: " + kundennummer); }
System.out.println("Name: " + name);
System.out.println("Anschrift: " + anschrift);
System.out.println("Email: " + email);
System.out.println("Telefonnummer: " + telefonnummer);
System.out.println("Kleinunternehmer: " + (istKleinunternehmer ? "Ja" : "Nein"));
System.out.println("Ansprechpartner: " + ansprechpartner);
}
// Methode zum Speichern der Kundendaten im XML-Format public void setAnsprechpartner(String ansprechpartner) {
public void speichereAlsXML(String dateiPfad) { this.ansprechpartner = ansprechpartner;
try { }
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();
// Root-Element
Element rootElement = doc.createElement("Kunde");
doc.appendChild(rootElement);
// Kundennummer-Element
Element nummerElement = doc.createElement("Kundennummer");
nummerElement.appendChild(doc.createTextNode(Integer.toString(kundennummer)));
rootElement.appendChild(nummerElement);
// Name-Element
Element nameElement = doc.createElement("Name");
nameElement.appendChild(doc.createTextNode(name));
rootElement.appendChild(nameElement);
// Anschrift-Element
Element anschriftElement = doc.createElement("Anschrift");
anschriftElement.appendChild(doc.createTextNode(anschrift));
rootElement.appendChild(anschriftElement);
// Email-Element
Element emailElement = doc.createElement("Email");
emailElement.appendChild(doc.createTextNode(email));
rootElement.appendChild(emailElement);
// Telefonnummer-Element
Element telefonnummerElement = doc.createElement("Telefonnummer");
telefonnummerElement.appendChild(doc.createTextNode(telefonnummer));
rootElement.appendChild(telefonnummerElement);
// Kleinunternehmer-Element
Element kleinunternehmerElement = doc.createElement("Kleinunternehmer");
kleinunternehmerElement.appendChild(doc.createTextNode(Boolean.toString(istKleinunternehmer)));
rootElement.appendChild(kleinunternehmerElement);
// Ansprechpartner-Element
Element ansprechpartnerElement = doc.createElement("Ansprechpartner");
ansprechpartnerElement.appendChild(doc.createTextNode(ansprechpartner));
rootElement.appendChild(ansprechpartnerElement);
// Transformieren und Speichern in Datei
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(dateiPfad));
transformer.transform(source, result);
System.out.println("Die XML-Datei wurde erfolgreich gespeichert.");
} catch (ParserConfigurationException | TransformerException e) {
e.printStackTrace();
}
}
// Methode zum Auslesen der Kundendaten aus einer XML-Datei
public void leseAusXML(String dateiPfad) {
try {
File xmlDatei = new File(dateiPfad);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlDatei);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("Kunde");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
this.kundennummer = Integer
.parseInt(eElement.getElementsByTagName("Kundennummer").item(0).getTextContent());
this.name = eElement.getElementsByTagName("Name").item(0).getTextContent();
this.anschrift = eElement.getElementsByTagName("Anschrift").item(0).getTextContent();
this.email = eElement.getElementsByTagName("Email").item(0).getTextContent();
this.telefonnummer = eElement.getElementsByTagName("Telefonnummer").item(0).getTextContent();
this.istKleinunternehmer = Boolean
.parseBoolean(eElement.getElementsByTagName("Kleinunternehmer").item(0).getTextContent());
this.ansprechpartner = eElement.getElementsByTagName("Ansprechpartner").item(0).getTextContent();
}
}
System.out.println("Die XML-Datei wurde erfolgreich gelesen.");
} catch (ParserConfigurationException | SAXException | IOException e) {
e.printStackTrace();
}
}
// Methode zum Auslesen der Kundendaten aus einer XML-Datei und in der Konsole
// ausgeben
public void leseUndGibAusXML(String dateiPfad) {
leseAusXML(dateiPfad);
anzeigen();
}
// Methode zur Eingabe der Kundendaten über die Konsole
public void eingabeDaten(Scanner scanner) {
System.out.print("Name: ");
this.name = scanner.nextLine();
System.out.print("Anschrift: ");
this.anschrift = scanner.nextLine();
System.out.print("Email: ");
this.email = scanner.nextLine();
System.out.print("Telefonnummer: ");
this.telefonnummer = scanner.nextLine();
System.out.print("Ist der Kunde ein Kleinunternehmer (true/false)? ");
this.istKleinunternehmer = Boolean.parseBoolean(scanner.nextLine());
System.out.print("Ansprechpartner: ");
this.ansprechpartner = scanner.nextLine();
}
// Methode zum Anzeigen der Kundendaten
public void anzeigen() {
System.out.println("Kundennummer: " + kundennummer);
System.out.println("Name: " + name);
System.out.println("Anschrift: " + anschrift);
System.out.println("Email: " + email);
System.out.println("Telefonnummer: " + telefonnummer);
System.out.println("Kleinunternehmer: " + (istKleinunternehmer ? "Ja" : "Nein"));
System.out.println("Ansprechpartner: " + ansprechpartner);
}
} }

View File

@ -2,7 +2,11 @@ package view;
import java.util.Scanner; import java.util.Scanner;
import controller.ArtikelController;
import controller.KundenController;
import controller.MainController; import controller.MainController;
import model.Artikel;
import model.Kunde;
public class StartUpMenue { public class StartUpMenue {
@ -31,15 +35,29 @@ public class StartUpMenue {
choice = Integer.parseInt(scanner.nextLine()); choice = Integer.parseInt(scanner.nextLine());
switch (choice) { switch (choice) {
case 1: case 1:
// MainController.createCustomer(); Kunde kunde = new Kunde();
KundenController.eingabeDaten(kunde, scanner);
KundenController.speichereAlsXML(kunde);
break; break;
case 2: case 2:
// MainController.viewCustomerData(); System.out.println("Kundennummer eingeben:");
int kundenWahl = Integer.parseInt(scanner.nextLine());
Kunde kunde1 = KundenController.leseAusXML(kundenWahl);
kunde1.anzeigen();
break; break;
case 3: case 3:
// MainController.createArticle(); Artikel artikel = new Artikel();
ArtikelController.eingabeDaten(artikel, scanner);
ArtikelController.speichereAlsXML(artikel);
break; break;
case 4: case 4:
System.out.println("Artikelnummer eingeben:");
int artikelWahl = Integer.parseInt(scanner.nextLine());
Artikel artikel1 = ArtikelController.leseAusXML(artikelWahl);
artikel1.anzeigen();
// MainController.viewArticleData(); // MainController.viewArticleData();
break; break;
case 9: case 9: