Top Banner
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 1 Informatik im Bauwesen II SS 2010 1. Hörsaalübung 1. Hörsaalübung Relationale Datenbanken / Webanwendungen Relationale Datenbanken / Webanwendungen Prof. Dr.-Ing. Uwe Rüppel Puyan Abolghasemzadeh, M.Sc.
65

Iib2 hu1 ss2010_java-db

Jan 24, 2015

Download

Education

guest377c0a

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 1

Informatik im Bauwesen II

SS 2010

1. Hörsaalübung1. Hörsaalübung

Relationale Datenbanken / WebanwendungenRelationale Datenbanken / Webanwendungen

Prof. Dr.-Ing. Uwe RüppelPuyan Abolghasemzadeh, M.Sc.

Page 2: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 2

Über mich

Puyan Abolghasemzadeh, M.Sc.

L501 / Raum 225a

Sprechstunde: Nur nach Vereinbarung!

06151/16-3644

[email protected]

Datenbanken für

Ingenieuranwendungen (DFI)

Informatik im Bauwesen I & II

Lernplattform BauKommPro

Page 3: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 3

Forschungsthemen

Entfluchtungssimulationen

BIM basierte Modellierungen

Immersive Ingenieurmethoden (Virtual Reality)

Parallel Computing

Serious Gaming

Page 4: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 4

Learning by doing

Page 5: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 5

Einführung in BauKommPro (http://www.baukommpro.de)

Page 6: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 6

Gliederung

Was wollen wir machen?

JavaRelationale DatenbankenERM

RD

SQL

MySQLJDBC

Page 7: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 7

Java vs. Python

http://twistedmatrix.com/users/glyph/rant/python-vs-java.html

Page 8: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 8

Was wollen wir machen?

Webbasierte Anwendung

Teil 1Java, relationale Datenbanken, JDBC

Teil 2HTML, dynamische Webseiten (Java Server Pages, Java Beans)

Internet

Server

RelationaleDatenbank

Page 9: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 9

Inhalte der Hörsaalübung

Java Kurze Auffrischung

MySQL Erstellen einer relationalen Datenbank

SQL-Abfragen

JDBC Verarbeiten von SQL-Queries

HTML Grundstruktur einer WWW-Seite

Java Server Pages / Java Beans WWW-Seiten mit dynamischem Inhalt

Page 10: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 10

Page 11: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 11

Hilfsmittel zur 1. Hausübung

Thinking in Java, 4th Editionvon Bruce Eckel http://www.mindviewinc.com/Books

http://www.mindview.net/Books/DownloadSites

http://www.galileocomputing.de/ http://www.galileocomputing.de/katalog/openbook/

Java ist auch eine Insel http://openbook.galileocomputing.de/javainsel8/

Page 12: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 12

Java: ... und noch mehr Bücher und Quellen

Page 13: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 13

Java: ?

James Gosling,

Sun MicroSystems, 1990

Entwicklung fortschrittlicher Software für Unterhaltungselektronik

und elektronische Kleingeräte

Ideal für Programmierung im Internet

Entwicklung von

eigenständigen Programmen (Stand alone Applications)

Webbasierte Anwendungen: browserbasierte Programmfragmente (Applets)

serverseitige Programmierung (Servlets / JSP)

Page 14: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 14

Java: Write Once, Run Everywhere

QuelltextJava

CompilerBytecode

JavaInterpreter

plattformspezifischeAnweisungen

Page 15: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 15

Java „Plattform“

Java Runtime Environment

Java Programm

Win32 BetriebssystemWin32 Betriebssystem API

Java API

Java Runtime Environment

SUN Solaris Betriebssystem

SUN Solaris Betriebssystem API

Java API

Java Programm

Page 16: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 16

Java: Die erste Tasse Java

/** * The HelloWorldApp class implements an application that * simply displays "Hello World!" to the standard output. */

class HelloWorldApp { public static void main(String[] args) {

System.out.println("Hello World!"); //Display the string}

}

/** * The HelloWorldApp class implements an application that * simply displays "Hello World!" to the standard output. */

class HelloWorldApp { public static void main(String[] args) {

System.out.println("Hello World!"); //Display the string}

}

Namenskonvention:

• Dateiname ist gleich Klassenname

• Groß- und Kleinschreibung ist wichtig (case sensitive)

Page 17: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 17

Java: Compilieren / Ausführen

Überprüfen der Java-Umgebung(Pfad zu Java-Entwicklungswerkzeugen z.B: C:\j2sdk1.4\bin)

Schreiben des Quelltextes (Editor: TextPad, NotePad++, ...) Übersetzen des Quelltextes in Bytecode (Java-Compiler: javac) Ausführen der Java-Anwendung (java HelloWorldApp)

Übersetzen: javac HelloWorldApp.java

Ausführen: java –cp . HelloWorldApp

Page 18: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 18

Entwicklungsumgebungen – IDEs

Features

Codevervollständigung

Syntaxkontrolle

Kompilieren, Ausführen, Debuggen

GUI Builder (viele IDEs auch ohne)

Beispiele

NetBeans, Eclipse, jDeveloper

Page 19: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 19

Java Projekt mit NetBeans

http://www.iib.bauing.tu-darmstadt.de/lehre/bauinfo3/download/HU1.avi

Page 20: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 20

Relationale Datenbanken

Page 21: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 21

Relationale Datenbanken

Was sind relationale Datenbanken (Vorlesung)

SQL (Hörsaalübung+Vorlesung)

MySQL

MySQL Spezifika

Page 22: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 22

Konzept

DatenbankentwurfDatenbankentwurf(mit ERM)

DatenbankDatenbank

GUIGUI

Umsetzung (mit relationales

Datenmodell)

Interaktion(mit SQL)

Page 23: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 23

ERM – Entity-Relationship-Model

Grafisches Hilfsmittel für den Datenbankentwurf, das von einem bestimmten Datenmodell unabhängig ist

Hauptelemente des ModellsEntitäten (Entities)

Beziehungen (Relationships)

Eigenschaften (Attribute)

Entity

Attribute

Relationship

Page 24: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 24

ERM → relationales Datenmodell: m:n-Beziehung

Beispiel

Page 25: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 25

SQL (Structured Query Language)

Ist eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken.

Entwickelt von IBM (1970er Jahren)Standardisiert von ANSI und ISO (1986)Wird von den meisten Datenbank-Management-Systemen (DBMS) unterstützt z.B. Oracel, MySQL

Sprachumfang Erstellen von Datenbanken, Tabellen und Indizes

Abfragen von Daten

Anlegen, Ändern und Löschen von Datensätzen

Anlegen von Benutzern und Vergabe von Zugriffsrechten

Page 26: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 26

SQL (Structured Query Language)

SQL ist eine Structured Query Language:Kann mit SELECT-Anweisung unterschiedliche Abfragen

(Queries) durchführen.

SQL ist Data Manipulation Language (DML):Kann mit INSERT INTO-Anweisung neue Datensetze (Tupel) in

Datenbank einfügen.

Kann mit UPDATE-Anweisung die Daten in der Datenbank aktualisieren.

Kann mit DELETE-Anweisung die Daten aus der Datenbank löschen.

Page 27: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 27

SQL – Datentypen

Page 28: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 28

Weitere Tabellenparameter

Page 29: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 29

Vorgehensweise bei Erstellung einer DB

1. Datenbank anlegen (Container für Tabellen und andere Datenbankobjekte)

2. Erstellen der Tabellen (Spalten und Datentypen)

3. Füllen der Tabellen mit Daten

4. Auswertung der Daten (Abfragen) und Löschen/Ändern der Daten

Unternehmen

Attribut Datentyp

U.-Nr. Zahl

U.-Name Text

DatenbankDatenbank

SQL

Page 30: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 30

Datenbank erstellen

MySQL

CREATE DATABASE [IF NOT EXISTS] datenbankname;

DB auswählen

USE datenbankname;

Existierende Datenbanken anzeigen

SHOW DATABASES;

Datenbank löschen

DROP DATABASE [IF EXISTS] datenbankname

Page 31: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 31

SQL – Tabellen erstellen

CREATE TABLE

Syntax (mit Fremdschlüssel und automatische Aufzählung für ID)

CREATE TABLE tabellenname(

tab_ID INTEGER NOT NULL AUTO_INCREMENT,

datenfeld1 datentyp1, ……

datenfeldX datentypX,

PRIMARY KEY(PKname),

FOREIGN KEY(FKname)

REFERENCES tabellenname(PKname)

);

Primärschlüssel

Fremdschlüssel

Primärschlüsselvon Tabelle 2

Page 32: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 32

SQL – Tabellen erstellen – Beispiel

Page 33: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 33

Fremdschlüsselparameter

Page 34: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 34

Fremdschlüsselparameter

Page 35: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 35

Tabellen mit m:n-Beziehung verknüpfen

Page 36: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 36

Datensätze eingeben

INSERT INTO

Beispiel

INSERT INTO

tabellenname(datenfeld1,…,datenfeldX)

VALUES(wert1,...,wertX);

Page 37: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 37

Verändern existierender Datensätze

UPDATE

Beispiel

UPDATE tabellenname

SET feld1=wert1,…,feldX=wertX

[WHERE bedingung];

UPDATE Projekt

SET Proj_Name="DBtower",Proj_beg="01.08.2008",Proj_Kst="984034,00"

WHERE Proj_Nr=2;

Page 38: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 38

Löschen von Datensätzen

DELETE

Beispiel

DELETE FROM tabellenname [WHERE bedingung];

DELETE FROM Projekt WHERE Proj_Kst<3000000;

Page 39: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 39

SQL – Datensätze abfragen

SELECT

Beispiel

Beispiel

SELECT [DISTINCT] feldX | * FROM tabellenname

[WHERE bedingung] [ORDER BY fildX [ASC|DESC]];

SELECT * FROM Projekt WHERE Proj_Kst>1000000;

SELECT * FROM Projekt ORDER BY Proj_Name;

Page 40: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 40

Graphviz - Graph Visualization Software

http://www.graphviz.org/

Page 41: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 41

MySQL

Page 42: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 42

MySQL

Frei verfügbarer DatenbankserverHat im Gegensatz zu MS Access keine Benutzeroberflächewww.mysql.com Ausführliche Dokumentation online verfügbar

http://dev.mysql.com/doc/

HRZ-Handbuch:

SQL, Grundlagen und Datenbankdesign, HRZ

Page 43: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 43

Benutzung von MySQL

Starten des DatenbankserversStarten der MySQL-Benutzerschnittstelle von der

Kommandozeile: MySQL –u <benutzername> -p

Beispiel: MySQL –u –root -p

Befehle zur Datenbankverwaltung SHOW DATABASES;

CREATE DATABASE <meine_datenbank>;

USE <meine_datenbank>;

Page 44: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 44

Benutzung von MySQL

Befehle zur Verwaltung von TabellenSHOW TABLES;SHOW COLUMNS FROM <tabellen_name>;Standard SQL Z.B. SELECT

Page 45: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 45

Benutzung der Kommandozeile

Alle SQL – Statements sollen dokumentiert und mit abgegeben werden

Die Eingabe von SQL – Statements muss evtl. wiederholt oder korrigiert werden

Die Statements sollten daher in einer Textdatei gespeichert werden

Page 46: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 46

SQL-Batchdateien

Mehrere SQL-Befehle können über Textdatei MySQL

übergeben werden

1. Anlegen einer Textdatei z.B. befehlsliste.sql

2. Befüllen der Textdatei mit SQL-Befehlen (Semikolon nicht

vergessen!)

3. Übergabe der Datei an MySQL mit dem Kommando:

MySQL –u root –p < befehlsliste.sql

Allgemein: MySQL –u benutzername < textdatei

Page 47: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 47

Datenbank sichern/ wiederherstellen

Nutzung des Programms MySQLdumpSichern der Datenbank kunden in der Datei kundenbackup.sql:

MySQLdump –u root –p --opt kunden > kundenbackup.sql

allgemein:

MySQLdump –u benutzername –p --opt db_name > db_sicherungsdatei

Wiederherstellen der Datenbank kunden aus der Datei kundenbackup.sql:

MySQL –u root –p < kundenbackup.sql

Page 48: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 48

Besonderheiten des MySQL - SQL

Bei der Verwendung von Fremdschlüsseln müssen in MySQL bei der Erstellung von Tabellen 2 Besonderheiten beachtet werden.

CREATE TABLE parent(id INT NOT NULL, PRIMARY KEY (id)) TYPE=INNODB;

CREATE TABLE child(id INT, parent_id INT,FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE SET

NULL, INDEX par_ind (parent_id)) TYPE=INNODB;

Page 49: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 49

JDBC

RelationaleDatenbank

Anwendung

SQL-Schnittstelle(z.B. ODBC, ADO,

DAO, JDBC)

Page 50: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 50

JDBC – Schnittstelle

Ist realisiert durch einen JDBC Treiber (speziell für die MySQL Datenbank)

Der Treiber besteht aus einem Satz von Klassen, die die Datenbankoperationen zwischen Applikation und Datenbank vermitteln

Treiberpaket: MySQL-connector-java-5.0.6-bin.jar Laden des Datenbanktreibers und Erstellen einer Connection

Page 51: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 51

JDBC – Schnittstelle

Weitere Klassen zum Arbeiten mit der Datenbank und mit SQL – Statements aus dem Package java.sql.*;

DriverManager: Baut die Verbindung auf

Connection: Verbindung zur Datenbank

Statement: Kapsel SQL - Statements

ResultSet: Ergebnismenge einer Datenbankabfrage

ResultSetMetaData: Metadaten zur Ergebnissmenge

SQLException

Page 52: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 52

Ende

Page 53: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 53

Einführung in Java

Page 54: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 54

Aufbau einer Klasse

Klassenkörper

Klassenkopf

Page 55: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 55

Deklaration von Attributen

Deklaration von Attributen

Page 56: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 56

Deklaration und Definition von Methoden

Methodenkörper

Methodenkopf

Page 57: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 57

main – Methode

Ist eine Klassenmethode (nicht global)Einstiegspunkt in jede Java-ApplicationJava Interpreter java sucht nach dieser MethodeÜbergabeparameter der Kommandozeile an die main-Methode im Array: String[] args

Page 58: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 58

Aufbau einer Klasse – Beispiel

Page 59: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 59

Konstruktor

Konstruktoraufrufen:

Page 60: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 60

Ausnahmebehandlung

Ausnahmebehandlung (Exception Handling) zum Abfangen und Protokollieren

eines fehlerhaften Programmverhaltens

try leitet einen Block ein, in dem eine Ausnahme auftreten kann.

catch leitet einen Block ein, der eine bestimmte Ausnahme behandeln kann.

finally leitet einen Block ein, der in jedem Fall (also unabhängig

davon, ob eine Ausnahme aufgetreten ist oder nicht)

ausgeführt wird.

try {tuEtwas_WasBoeseEndenKann;

} catch (AusnahmeTyp variable) {behandelnDerAusnahme;

} finally {wirdImmerAusgefuehrt;

}

try {tuEtwas_WasBoeseEndenKann;

} catch (AusnahmeTyp variable) {behandelnDerAusnahme;

} finally {wirdImmerAusgefuehrt;

}

Page 61: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 61

Ausnahmebehandlung - Beispiel

Es gibt 2 Methoden, mit Exceptions umzugehen (Behandeln oder Weiterreichen)

Page 62: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 62

Packages

Zugriff auf eine Klasse aus einem Package

● Die import Anweisung

● Die import Anweisung mit Wildcard● Alle Klassen aus diesem Package können verwendet werden

Page 63: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 63

Die Klassenbibliothek von Java (Java-API)

Wird im JDK mitgeliefertKlassen sind in Pakete (packages) unterteilt, die hierarchisch

geordnet sind z.B. java.math.BigInteger, org.gjt.mm.MySQL.Driver

Standard API Für alltägliche Programmierarbeit

Klassen für Stringverarbeitung, Dateizugriffe, GUI – Erstellung, etc.

Weitere APIs für spezielle Aufgaben 2D, 3D – Grafik, Datenbankzugriffe, etc.

Dokumentation des Java – API Einem einheitlichen Format folgend

Zu eigenen Klassen können mit Hilfe von Werkzeugen im gleichen Format Dokumentationen erstellt werden

auch im Internet: http://java.sun.com/j2se/1.5.0/docs/api/

Page 64: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 64

Java API: Screenshot

Page 65: Iib2 hu1 ss2010_java-db

22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 65

Nutzung der Klassenbibliothek

Standard API kann einfach genutzt werdenWeiter Pakete können wie folgt eingebunden werdenKopieren der entsprechenden Pakete nach java_home\jre\lib\ext

Oder einbinden externer Ressourcen Kommandozeile: Option –cp (classpath) beim Ausführen java –cp d:\meine_bib Test

IDEs Verschiedene Mechanismen zum Einbinden von externen Ressourcen