JAVA und SQL. BestPhone call-handling


Hausarbeit, 2012

43 Seiten, Note: 1,3


Leseprobe

Inhaltsverzeichnis

Abkürzungsverzeichnis

Abbildungsverzeichnis

Tabellenverzeichnis

1 Einleitung
1.1 Verwendete Hilfsmittel

2 Programmaufbau und Ziel

3 Programmablauf – Die Klasse BestPhoneCostAnalysis
3.1 Verbindungsaufbau – Die Methode getConnection()
3.2 Schließen der Verbindung – Die Methode releaseConnection()
3.3 Programmlauf – Die main-Methode

4 Aufgabe 1 – Vorbereitung – Die Klasse Task1PrepareDatabase
4.1 Aufgabenstellung
4.2 Ablauf – Die Methode task1()
4.3 Absetzen von SQL-Statements – catch-Exceptions
4.4 Datenbankbereinigung – Die Methode cleanupDatabase()
4.5 Tabellen erstellen – Die Methode createTables()
4.6 Daten schreiben – Die Methoden insertData* ()

5 Aufgabe 2 – Berechnung – Die Klasse Task2CalculateData()
5.1 Aufgabenstellung
5.2 Ablauf – Die Methode task2()
5.3 Ergebnistabelle anlegen – Die Methode createTableKOMSTAT()
5.4 Gesprächsdaten übertragen – Die Methode getCallData()
5.5 Anteil-Berechnung – Die Methode calculateRatio()
5.6 Datenaktualisierung – Die Methode insertNewCallData()

6 Aufgabe 3 – Datenausgabe – Die Klasse Task3DisplayResults
6.1 Aufgabenstellung
6.2 Ablauf – Die Methode task3()
6.3 Daten-Ausgabe – Die Methode displayCosts()

Anhang
a) Aufgabenstellung
b) Quellcodes
Klasse „BestPhoneCostAnalysis
Klasse „Task1PrepareDatabase
Klasse „Task2CalculateData“
Klasse „Task3DisplayResults“
c) Anderes
Konsolenausgabe
SQL Statements

Literaturverzeichnis

Abkürzungsverzeichnis

Abbildung in dieser Leseprobe nicht enthalten

Abbildungsverzeichnis

Abbildung 1 Klassendiagramm 7

Abbildung 2 Datenbank-Tabellen 8

Abbildung 3 Tabelle KOMSTAT_TEMP 18

Abbildung 4 Tabelle KOMSTAT mit originalen Daten 18

Abbildung 5 Tabelle KOMSTAT mit aktualisierten Daten 19

Tabellenverzeichnis

Tabelle 1 execute SQL Statements 13

Tabelle 2 Output Format 21

1 Einleitung

Gegenstand dieser Hausarbeit ist das auf einer Datenbank (DB) basierende Informationssystem der Firma „ BestPhone “. Dieses System verwaltet und protokolliert die Telefongesprächsdaten mehrerer Unternehmen. Im Vordergrund steht die Unterscheidung der Telefongespräche (Tabelle VN) Ihrer Art nach in Festnetz- (Tabelle FESTNETZ) oder Mobilfunkgespräche (Tabelle MOBIL) und die tarifbezogene Kostenaufschlüsselung. Die Ausarbeitung gliedert sich in die folgenden drei Teilaufgaben:

1. Erstellung der Klasse Task1PrepareDatabase zur Abbildung des vorgegebenen Datenbankschemas auf die Oracle-DB und anschließender Datenanreicherung der zugehörigen Tabellen.

2. Entwicklung eines Programms das die Tabelle KOMSTAT mit den Attributen

- Verbindungsart (vart), gleichbedeutend mit den Primärschlüsseln der Tabellen MOBIL und FESTNETZ,
- Anzahl Verbindungen je Verbindungsart (dauer),
- Gesamtkosten je Verbindungsart (vart),
- sowie prozentualem Anteil an den Gesamtkosten (anteil)

generiert. Dabei darf jeder Eintrag der Spalte (Column) Verbindungsart (vart) nur einmal erfasst werden. Die Daten aus der Tabelle VN müssen übertragen und eine Methode zur Speicherung eines Anrufs in die Tabelle VN entwickelt werden.

3. Abschließend ist die Tabelle KOMSTAT formatiert auf der Konsole auszugegeben.

1.1 Verwendete Hilfsmittel

Zur Erstellung dieser Prüfungsleistung wurden folgende Bücher verwendet:

- „Java als erste Programmiersprache: Vom Einsteiger zum Profi“(Heinisch, Cornelia; Goll, Joachim; Müller-Hofmann, Frank:) 5., überarbeitete und erweiterte Auflage, B.G. Teubner Verlag / GWV Fachverlage GmbH, Wiesbaden: 2007
- „jetzt lerne ich Java 6: Komplettes Starterkit für den erfolgreichen Einstieg in die Programmierung“(Louis, Dirk; Müller, Peter) Markt+Technik Verlag, 2007
- „Java Grundkurs für Wirtschaftsinformatiker“(Deck, Klaus-Georg; Neuendorf, Herbert) 1. Auflage, Vieweg Verlag, Wiesbaden, 2007
- „Java ist auch eine Insel“(Ullenboom, Christian) Galileo Computing
- „Einführung in Eclipse und Java“(Götz , Dipl.Inf. Manuel) Universität Bayreuth, Lehrstuhl für Angewandte Informatik IV: 2007
- „Eclipse: Basic tutorial “ (Kiezun, Adam): 2005
- “Java lernen mit Eclipse 3“(Wolmeringer, Gottfried), Galileo Computing, Kusel: 2005

Darüber hinaus wurden folgende Internetquellen zu Rate gezogen:

- Oracle Java documentation (Oracle Corporation)
- Tutorial / Java Grundlagen (programmersbase.net)
- Eclipse: Erste Schritte (Horn, Thorsten)
- Java API (SE 6) (Oracle Corporation)

Genauere Angaben sind dem Literaturverzeichnis ab Seite 41 zu entnehmen.

2 Programmaufbau und Ziel

Die Aufgabenstellung wird durch den Entwurf von vier Klassen gelöst. Die Klasse BestPhoneCostanalysis (bpca) führt die main-Methode aus und wird daher im Rahmen dieser Arbeit auch als Haupt- oder Ober-Klasse bezeichnet. Darüber hinaus ruft Sie auch Methoden der anderen drei Klassen Task1PrepareData (T1), Task2CalculateData (T2) sowie Task3DisplayData (T3) (nachfolgend als Unter- oder Nebenklassen bezeichnet) auf. (siehe auch Abbildung 1 Klassendiagramm) Die Klasse T1 beinhaltet die Methoden zur Vorbereitung der Datenbank und erfüllt damit Aufgabe 1 der Anforderungsdefinition. Es wird eine Oracle SQL Datenbank benutzt. SQL steht im allgemeinen Sprachgebrauch für Structured Query Language, obwohl es eigentlich ein Eigenname ist. Die Klasse T2 enthält entsprechend die Methoden zur Erstellung der Resultat-Tabelle (KOMSTAT) und zur Berechnung der Ergebnisdaten (Aufgabenteil 2). Durch die Methoden in der dritten Unter-Klasse T3 werden die Ergebnisse der Berechnung – daher die Inhalte der Tabelle KOMSTAT – auf der Konsole ausgegeben und damit die Anforderungen des Aufgabenteils 3 erfüllt.

Die für das Programm benötigten und benutzten Tabellen inklusive Ihrer Beziehungen sind auf der Abbildung 2 dargestellt. Vorgegeben sind durch die Aufgabenstellung die Tabellen VN, FESTNETZ, MOBIL (Aufgabe 1) und KOMSTAT (Aufgabe 2). Darüber hinaus wird noch die Tabelle KOMSTAT_TEMP verwendet. Sie wird temporär erstellt und dient der Datenberechnung.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2 Datenbank-Tabellen

In den Tabellen FESTNETZ und MOBIL sind die Konditionen (Kosten/Minute in Euro-Cent) für die verschiedenen Verbindungsarten:

FESTNETZ (Spalte fid): L = LOKAL, F = FERN, R = REGIONAL

MOBIL (Spalte mid): D1, D2, O2, EPLUS

gespeichert. Die Tabelle VN kombiniert diese Daten indem Sie ein Gesprächsprotokoll auflistet, aus welchem ersichtlich ist welcher Teilnehmer (Spalte RUFNUMMER) mit welcher Verbindungsart (Spalten mid, fid) – und damit auch zu welchen Konditionen (über Fremdschlüssel Spalten mid, fid in den Tabellen FESTNETZ und MOBIL) – für wie lange (Spalte DAUER) von welchem Anschluss (Spalte nbstelle) angerufen wurde.

Ziel dieser Ausarbeitung ist es, per Java-Programm auf die Datenbank zuzugreifen und eine Kalkulation durchzuführen. Die Kalkulation soll in der Tabelle KOMSTAT gespeichert und via Konsole angezeigt werden. Aus der Kalkulation soll hervorgehen wie viele Gesprächsminuten (Spalte anzahl) zu welchem Gesamtpreis (Spalte kosten) mit welchem Anteil am Gesamtpreis (Spalte anteil) pro Verbindungsart (Spalte vart) angefallen sind. Nachfolgend wird daher die Lösung der Teilaufgaben detailliert erläutert.

3 Programmablauf – Die Klasse BestPhoneCostAnalysis

Diese Klasse sorgt für den Auf- und Abbau der Datenbankverbindung und die strukturierte Ausführung des Gesamt-Programms innerhalb der main-Methode. Dafür bedient Sie sich unter anderem des Methodenaufrufs der Unterklassen. Zunächst werden lediglich die benötigten Java-Pakete mit folgendem Quelltext importiert:

import java . sql . Connection ;

import java . sql . DriverManager ;

import java . sql . SQLException ;

Dieser „Importvorgang“ wiederholt sich in den anderen Klassen entsprechend und bedarf daher keiner weiteren Erklärung. Auf die Erläuterung der einzelnen Pakete wird hier mit Verweis auf die hinreichende Behandlung sämtlicher Java Methoden in der Java API (siehe Literaturverzeichnis) verzichtet. Ebenfalls in der Haupt-Klasse wird ein statisches Connection-Objekt (Verbindung) (static Connection con = null ;) für den Verbindungsaufbau mit der Datenbank definiert und (mit dem Wert ‚null‘) initialisiert. Dieses Connection-Objekt con wird durch den Konstruktor der Methode getConnection ( user , password , url ) erzeugt und während des Programmlaufs an alle Methoden die die Verbindung benötigen übergeben und muss daher in der Hauptklasse als statisch definiert werden. Zur Erklärung ist anzufügen, dass in Java Instanzvariablen und Klassenvariablen (statische) Variablen (Vars) existieren. Das Attribut static definiert eine statische Variable welche im Gegensatz zu den Instanzvariablen nicht an ein konkretes Objekt gebunden sind, nur einmal angelegt werden müssen und dann von allen Methoden der Klasse (in der sie definiert sind) aufgerufen werden können. Sie sind vergleichbar mit globalen Variablen denn ihre Lebensdauer erstreckt sich auf das gesamte Programm. Änderungen an diesen Vars sind auch in allen anderen Instanzen sichtbar. Das static-Attribut verhält sich bei Methoden äquivalent. Im Anschluss werden jetzt die Methoden der Klasse BestPhoneCostAnalysis erläutert.

3.1 Verbindungsaufbau – Die Methode getConnection()

Das Standardverfahren bei Verwendung von JDBC in Verbindung mit einer Datenbank ist wie folgt definiert:

1. Verbindungsaufbau (hier Methode getConnection)
2. Senden von SQL Statements (Befehlen) an die Datenbank inklusive commit (bestätigen = übernehmen/speichern der Änderungen) oder roll-back (zurückrollen = Abbruch/nicht speichern der Änderungen)
3. Schließen der Datenbankverbindung (hier Methode releaseConnection)

Zur erfolgreichen Herstellung der Datenbankverbindung via Java Database Connectivity (JDBC) erwartet die Methode getConnection() die Übergabe von drei Parametern (String user , String password , String url), nämlich den Benutzerdaten (Anmeldename, Passwort und Datenbankadresse) für die Datenbank. In diesem Programm werden diese Variablen fest vorgegeben. Sie werden in der main-Methode definiert und initialisiert und daher bei Aufruf der Methode dieser übergeben. Die Methode gibt entweder eine Datenbankverbindung (bei Erfolg) oder einen null-Wert (bei erfolglosem Versuch der Verbindungserstellung) zurück. Es ist daher ein catch-Block zur Anzeige von Fehlern beim Verbindungsaufbau implementiert.

3.2 Schließen der Verbindung – Die Methode releaseConnection()

Diese Methode hat den Bezeichner void, daher liefert Sie keinen Rückgabewert. Dieser Bezeichner ist allgemein gültig, daher wird bei allen folgenden Methoden mit diesem Bezeichner auf die Erläuterung verzichtet. Durch Aufruf dieser Methode wird die Datenbankverbindung ordnungsgemäß beendet. Eventuell auftretende Fehler werden durch den catch-Block abgefangen und dem User (Benutzer) angezeigt.

3.3 Programmlauf – Die main-Methode

In der main-Methode werden die Verbindungsparameter (user, password, url) definiert und initialisiert. Sie werden hier fest vorgegeben, da immer auf dieselbe Datenbank verbunden werden soll. Dann werden durch sogenannte Konstruktoren neue Objekte der Klassen bpca, T1, T2 und T3 erstellt. An bpca werden die Parameter für den Verbindungsaufbau übergeben, nach erfolgreich hergestellter Verbindung werden dann die Objekte t1, t2, t3 mit Übergabe der (soeben durch bpca hergestellten) Datenbankverbindung con aufgerufen. Diese werden detailliert im jeweiligen Abschnitt (Aufgabe 1 bis 3 erläutert. Zuletzt wird durch den Aufruf bpca . releaseConnection (); die Verbindung zur Datenbank beendet.

4 Aufgabe 1 – Vorbereitung – Die Klasse Task1PrepareDatabase

4.1 Aufgabenstellung

Zuerst muss die Datenbank bereinigt werden indem alle vier Tabellen gelöscht werden. Anschließend wird das aus den drei Tabellen VN, MOBIL und FESTNETZ bestehende Datenbankschema durch ein Objekt t1 der Klasse Task1PrepareDatabase angelegt. Dann werden die neu angelegten Tabellen mit den vorgegebenen Daten gefüllt. In der Klasse Task1PrepareDatabase sind die vorgegebenen Datenelemente als Arrayvariablen definiert und initialisiert. Dabei handelt es sich gemäß den geforderten Datentypen um String- und double-Arrays ([]). Ein Beispiel für einen String Array sind die MOBIL Verbindungsarten:

String[] mid = { "D1", "D2", "O2", "EPLUS" };,

die Preise sind als double definiert:

double [] preis = { 22 . 9 , 24 . 9 , 20 . 9 , 23 . 5 };.

Um dem Programm mit möglichst geringem Aufwand andere Daten oder Datenquellen (z.B. einlesen von Dateien mit Verbindungsdaten) zuführen zu können wurden alle einzulesenden Daten zentral in der Klasse T1 abgelegt. Dadurch reicht es an einer Stelle den Quellcode zu verändern um andere Daten mit diesem Programm zu verwenden.

4.2 Ablauf – Die Methode task1()

Der Übersicht halber sind die Methodenaufrufe der Klasse T1 in die Methode task1 ausgelagert. Man kann diese darum als Hauptmethode des Aufgabenteils 1 bezeichnen. Der User wird per Bildschirmausgabe (System . out . println…) über den Programmfortschritt informiert. Es werden nacheinander die Methoden

- cleanupDatabase,
- createTables,
- insertDataMOBILPreparedStatement,
- insertDataFESTNETZPreparedStatement und
- insertDataVNPreparedStatement

mit den jeweilig benötigten Übergabeparametern (in Klammern nach dem Methodennamen geschrieben) aufgerufen. Die bestehende Verbindung con wird durch den Aufruf methodenName(con); übergeben. Dass eine Methode den Parameter con als Übergabe erwartet ist durch die Definition methodenName ( Connection con ) ersichtlich. Bei nachfolgenden Methodenaufrufen mit nur diesem Parameter wird diese Tatsache nicht mehr explizit erwähnt, da Sie aus dem Quelltext (siehe Anhang b) ersichtlich ist.

Für die nachfolgenden Methoden müssen zum ersten Mal SQL-Befehle, sogenannte SQL-Statements, an die Datenbank gesendet werden. Das Absetzen von SQL-Statements an die Datenbank funktioniert immer nach demselben Prinzip und wird daher unter dem Punkt 4.3 Absetzen von SQL-Statements einmalig exemplarisch erläutert.

4.3 Absetzen von SQL-Statements – catch-Exceptions

- Es muss ein Statement-Objekt definiert werden, das als Container für die SQL-Statements fungiert. Bewirkt wird das durch den Quellcode: Statement stmt = null ; (das Objekt wird mit null initialisiert).
- String Vars die den Text des Befehls enthalten werden definiert und initialisiert. (z.B. String delStringVN ="DROP TABLE vn CASCADE CONSTRAINTS";) Die in diesem Programm verwendeten SQL-Statements sind im Anhang zu finden.
- Das Absetzen von SQL-Statements wird mit einer try-catch-Anweisung realisiert um auftretende Fehler (Exceptions) zu behandeln, abzufangen oder anzeigen zu lassen.
- Im try-Block stehen die auszuführenden Befehle.
- Im catch-Block wird die „Exception“ behandelt wenn bei Befehlen aus dem try-Block ein Fehler auftritt.
- z.B. durch Anzeige von Fehlermeldungen: println(eigener Fehlertext) oder println(e.getMessage()) (vgl. Java API Auslesen von SQL Fehlermeldungen)

[...]

Ende der Leseprobe aus 43 Seiten

Details

Titel
JAVA und SQL. BestPhone call-handling
Hochschule
Fachhochschule Bielefeld
Note
1,3
Autor
Jahr
2012
Seiten
43
Katalognummer
V274938
ISBN (eBook)
9783656677406
ISBN (Buch)
9783656677376
Dateigröße
835 KB
Sprache
Deutsch
Schlagworte
Java;, sql, Programmieren, DB-connector
Arbeit zitieren
Thomas Hillen (Autor), 2012, JAVA und SQL. BestPhone call-handling, München, GRIN Verlag, https://www.grin.com/document/274938

Kommentare

  • Noch keine Kommentare.
Im eBook lesen
Titel: JAVA und SQL. BestPhone call-handling



Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden