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
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 1
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
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
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)
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
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
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 19
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 20
Relationale Datenbanken
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
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)
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
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
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
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.
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 27
SQL – Datentypen
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 28
Weitere Tabellenparameter
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
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
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
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 32
SQL – Tabellen erstellen – Beispiel
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 33
Fremdschlüsselparameter
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 34
Fremdschlüsselparameter
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
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);
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;
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;
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;
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 40
Wiederherstellen der Datenbank kunden aus der Datei kundenbackup.sql:
MySQL –u root –p < kundenbackup.sql
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;
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)
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
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
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 52
Ende
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 53
Einführung in Java
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
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
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
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
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 58
Aufbau einer Klasse – Beispiel
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 59
Konstruktor
Konstruktoraufrufen:
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)