Antwort mit KI erzeugt
Um ein Java-Programm zu erstellen, das die oben beschriebenen Anforderungen erfüllt, müssen wir die Java Database Connectivity (JDBC) verwenden. JDBC ermöglicht es Java-Anwendungen, auf relationale Datenbanken zuzugreifen und SQL-Abfragen auszuführen.
Hier ist eine Schritt-für-Schritt-Anleitung, einschließlich eines vollständigen Java-Codes, der die geforderten Funktionalitäten implementiert:
Schritt 1: Datenbank einrichten
- Erstellt eine MySQL-Datenbank mit den Tabellen für Kunden und Mieten.
- Fügt Beispiel-Datensätze hinzu.
Schritt 2: JDBC-Treiber hinzufügen
- Stellt sicher, dass die MySQL-JDBC-Treiberbibliothek (mysql-connector-java) im Projekt eingebunden ist.
Schritt 3: Java-Programm erstellen
- Implementiert die benötigten Funktionen in Java.
Datenbankschema:
sql
CREATE DATABASE pp1;
USE pp1;
CREATE TABLE Kunden (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
email VARCHAR(100)
);
CREATE TABLE Mieten (
id INT PRIMARY KEY AUTO_INCREMENT,
kunden_id INT,
roller_id INT,
mietdatum DATE,
FOREIGN KEY (kunden_id) REFERENCES Kunden(id)
);
-- Beispiel-Datensätze einfügen
INSERT INTO Kunden (name, email) VALUES ('Max Mustermann', 'max@mustermann.de');
INSERT INTO Kunden (name, email) VALUES ('Erika Mustermann', 'erika@mustermann.de');
INSERT INTO Mieten (kunden_id, roller_id, mietdatum) VALUES (1, 101, '2023-01-15');
INSERT INTO Mieten (kunden_id, roller_id, mietdatum) VALUES (2, 102, '2023-02-20');
Java-Code:
java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.util.Scanner;
public class SharingPlattformApp {
private static final String DB_URL = "jdbc:mysql://localhost:3306/pp1";
private static final String USER = "root";
private static final String PASS = "password";
private static Connection conn = null;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean running = true;
while (running) {
System.out.println("1. Verbindung zur Datenbank aufbauen");
System.out.println("2. Neuen Kunden aufnehmen");
System.out.println("3. Alle Kunden anzeigen");
System.out.println("4. Alle alten Mieten anzeigen (Roller)");
System.out.println("5. Verbindung zur Datenbank abbauen");
System.out.println("Bitte wählen Sie eine Option:");
int choice = scanner.nextInt();
scanner.nextLine(); // consume newline character
switch (choice) {
case 1:
connectToDatabase();
break;
case 2:
addNewCustomer(scanner);
break;
case 3:
displayAllCustomers();
break;
case 4:
displayOldRentals();
break;
case 5:
disconnectFromDatabase();
running = false;
break;
default:
System.out.println("Ungültige Eingabe. Bitte wählen Sie eine Zahl von 1 bis 5.");
break;
}
}
scanner.close();
}
private static void connectToDatabase() {
try {
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Verbindung zur Datenbank erfolgreich hergestellt.");
} catch (Exception e) {
e.printStackTrace();
}
}
private static void addNewCustomer(Scanner scanner) {
if (conn == null) {
System.out.println("Bitte verbinden Sie zuerst mit der Datenbank (Option 1).");
return;
}
try {
System.out.println("Geben Sie den Namen des neuen Kunden ein:");
String name = scanner.nextLine();
System.out.println("Geben Sie die E-Mail des neuen Kunden ein:");
String email = scanner.nextLine();
String query = "INSERT INTO Kunden (name, email) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setString(1, name);
pstmt.setString(2, email);
pstmt.executeUpdate();
System.out.println("Neuer Kunde erfolgreich hinzugefügt.");
} catch (Exception e) {
e.printStackTrace();
}
}
private static void displayAllCustomers() {
if (conn == null) {
System.out.println("Bitte verbinden Sie zuerst mit der Datenbank (Option 1).");
return;
}
try {
String query = "SELECT * FROM Kunden";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String email = rs.getString("email");
System.out.println("ID: " + id + ", Name: " + name + ", Email: " + email);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static void displayOldRentals() {
if (conn == null) {
System.out.println("Bitte verbinden Sie zuerst mit der Datenbank (Option 1).");
return;
}
try {
String query = "SELECT Mieten.id, Kunden.name, Mieten.roller_id, Mieten.mietdatum " +
"FROM Mieten " +
"JOIN Kunden ON Mieten.kunden_id = Kunden.id";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int rollerId = rs.getInt("roller_id");
String mietdatum = rs.getString("mietdatum");
System.out.println("Mieten ID: " + id + ", Kunde: " + name + ", Roller ID: " + rollerId + ", Mietdatum: " + mietdatum);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static void disconnectFromDatabase() {
if (conn != null) {
try {
conn.close();
System.out.println("Verbindung zur Datenbank erfolgreich abgebaut.");
} catch (Exception e) {
e.printStackTrace();
}
} else {
System.out.println("Es besteht keine Verbindung zur Datenbank.");
}
}
}
Erklärung:
1.
Verbindung zur Datenbank aufbauen: In der Methode
connectToDatabase
wird die Verbindung zur Datenbank hergestellt.
2.
Neuen Kunden aufnehmen: In der Methode
addNewCustomer
wird ein neuer Kunde zur Datenbank hinzugefügt.
3.
Alle Kunden anzeigen: Die Methode
displayAllCustomers
zeigt alle Kunden in der Datenbank an.
4.
Alle alten Mieten anzeigen (Roller): Die Methode
displayOldRentals
zeigt alle alten Mieten für Roller an.
5.
Verbindung zur Datenbank abbauen: Die Methode
disconnectFromDatabase
baut die Verbindung zur Datenbank ab.
Benutzer können die verschiedenen Funktionen durch Eingabe der entsprechenden Zahl (1-5) wählen.