JDBC_Reservierung - Datei

Werbung
Datenbankprogrammierung, Dipl.-Ing.(FH) David Schiffer
Übungsblatt: JAVA Programm mit JDBC
4/7/2017
ÜBUNGSAUFGABE
Zu dieser Aufgabe finden Sie unter dem folgenden Link einige Dateien zum Download:
http://fh.schiffer-online.com/index.php?dir=script/Uebungen
Erstellen Sie mit den downloadbaren SQL-Sktipten die entsprechenden Tabellen, wenn Sie
Ihr Projekt unter Oracle realisieren wollen, verwenden Sie die Datei „…_ora.sql“, wenn Sie
mit MySQL arbeiten wollen, verweden Sie die entsprechend benannte Datei.
1. Aufgabe: Suche passendes Automodell
Erstellen Sie ein Java-Programm für die Angestellten einer Autoverleihfirma, mit dem die
Mitarbeiter der Autoverleihfirma ein passendes Automodell suchen können.
Dazu kann der Benutzer einschränkende Angaben machen, z. B. die Art des Automodells
(LKW, Kombi, ...) im Klartext, die Zahl der Sitzplätze, die maximale Zuladung, den Preis pro
Tag usw. Der Benutzer kann dabei keine, einige oder alle Eigenschaften der gesuchten
Automodelle spezifizieren.
Das Programm soll dann tabellarisch die den Suchkriterien entsprechenden Automodelle
ausgeben.
Sie können hierfür auf ein von mir vorbereitetes Eclipse-Projekt „Autoleihe" zurückgreifen,
dürfen aber auch gerne ein völlig eigenständiges Programm erstellen.
Um die Tabellenstruktur besser erfassen zu können sollten Sie sich zuerst ein ER-Diagramm
mit dem Tool Ihrer Wahl erstellen (Visio, Bleistift, …) – dies ist ebenfalls Bestandteil der
Übung und wird ebenso bewertet.
Datenbankprogrammierung, Dipl.-Ing.(FH) David Schiffer
Übungsblatt: JAVA Programm mit JDBC
4/7/2017
2. Aufgabe: DAO
Im Beispielprogramm ist der datenbankspezifische - und der SQL-Code auf viele Klassen
verteilt, es handelt sich hierbei um eine sehr unübersichtliche und unschöne Architektur.
Modellieren Sie die Klassen Auto, Automodell, etc.Bauen Sie das Programm anschliessend so
um, dass nicht mehr direkt mit ResultSets gearbeitet wird, sondern mit Objekten der neu
modellierten Klassen.
Überlegen Sie sich dann vor dem Umbau, wie die neue Klassenstruktur aussehen soll,
modellieren Sie diese bevor Sie mit dem Programmieren beginnen, verwenden Sie hierzu
Together oder ein anderes UML-Tool (Omondo, etc.)
Lassen Sie sich Ihr Diagramm vom Dozenten abnehmen, bevor Sie mit der programmatischen
Umsetzung beginnen und setzen anschließend das Modell um.
3. Aufgabe: Eintragen einer Reservierung für ein Automodell
Erstellen Sie ein Java Programm, mit dem man in der Datenbank der Autoverleih-Firma eine
Reservierung eintragen kann.
Dazu muss der Benutzer (Mitarbeiter der Verleihfirma) durch Angabe der Kunden-Nummer
erst den Kunden authentifizieren, d.h. nur für einen registrierten Kunden kann eine
Reservierung vorgenommen werden.
Danach markiert der Mitarbeiter ein Automodell in der tabellarischen Übersicht und gibt
einen Zeitraum an. Wenn in dem Wunschzeitraum wenigstens ein Auto des angegebenen
Automodells frei ist, soll die Reservierung in die entsprechende Tabelle eingetragen werden.
Achten Sie auf eine Programmierung, bei der sich auch zwei gleichzeitig stattfindende
Reservierungen verschiedener Kunden nicht stören (beispielsweise, weil 2 Mitarbeiter
gleichzeitig am System arbeiten). Eventuell müssen Sie dazu die Datenbankstruktur ändern
oder ganze Tabellen sperren. Verwenden.
Hinweise







Der Download beinhaltet ein vollständiges Eclipse 3.2 Projekt inklusiver der JDBCTreiber für Oracle und MySQL. Aktuell ist das Programm auf den Zugriff auf eine
MySQL-Db angepasst, das müssen Sie auf Oracle mit Ihrem entsprechenden Benutzer
abändern.
Damit die Überprüfung der Kunden funktioniert, müssen Sie wenigstens zwei Kunden in
die Datenbank eintragen. Sie können aber auch die Datei "insert_into_kunde.sql"
ausführen. Damit werden die Studenten der Vorlesung Datenbankprogrammierung als
Kunden eingetragen.
Ändern Sie in meiner Programm-Vorgabe (wenn Sie sie benutzen) auf alle Fälle Ihren
Benutzernamen und das Passwort.
Den Code für die Reservierung tragen Sie dann in der Klasse „Reservator“ ein.
Die Modell-ID des ausgewählten Automodells, das reserviert werden soll, wird in meiner
actionPerformed Methode nur ausgegeben, Sie nutzen diese ID zur Reservierung.
Für Oracle ist eine Sequence "reservierungseq" eingerichtet, die automatisch eine neue
ReservierungsID erzeugt. Das entsprechende insert-Kommando beginnt dann mit
"insert into Reservierung Values (reservierungseq.nextval, ..."
Bei MySQL ist ein Autoinkrement-Feld für die ReservierungsID eingerichtet, d. h. dieses
Feld braucht beim Insert nicht belegt zu werden; es wird automatisch gesetzt.
Herunterladen