Informatik im Bauwesen II
  SS 2010




                      1. Hörsaalübung
        Relationale Datenbanken / Webanwendu...
Über mich

  Puyan Abolghasemzadeh, M.Sc.

     L501 / Raum 225a
     Sprechstunde: Nur nach Vereinbarung!
     06151/...
Forschungsthemen


  Entfluchtungssimulationen
  BIM basierte Modellierungen
  Immersive Ingenieurmethoden (Virtual Rea...
Learning by doing




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puya...
Einführung in BauKommPro (http://www.baukommpro.de)




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden...
Gliederung

  Was wollen wir machen?

  Java
  Relationale Datenbanken
     ERM
     RD
     SQL
  MySQL
  JDBC


...
Java vs. Python




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


22. April 2010 | Fachbereich 13 | I...
Was wollen wir machen?

  Webbasierte Anwendung
                                            Server


         Relationale...
Inhalte der Hörsaalübung

 Java
     Kurze Auffrischung
 MySQL
     Erstellen einer relationalen Datenbank
     SQL-Abf...
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.S...
Hilfsmittel zur 1. Hausübung

  Thinking in Java, 4th Edition
   von Bruce Eckel
     http://www.mindviewinc.com/Books
 ...
Java: ... und noch mehr Bücher und Quellen




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Info...
Java: ?

  James Gosling,
    Sun MicroSystems, 1990
  Entwicklung fortschrittlicher Software für Unterhaltungselektroni...
Java: Write Once, Run Everywhere




                                   Java                                     Java     ...
Java „Plattform“

                                               Java Programm


                                         ...
Java: Die erste Tasse Java

            /**
             /**
              * *The HelloWorldApp class implements an applic...
Java: Compilieren / Ausführen

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


  Features
     Codevervollständigung

     Syntaxkontrolle

     Kompilieren, Ausführ...
Java Projekt mit NetBeans




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




22. April 201...
Relationale Datenbanken




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen ...
Relationale Datenbanken


  Was sind relationale Datenbanken (Vorlesung)
  SQL (Hörsaalübung+Vorlesung)
  MySQL
  MySQ...
Konzept

                                                                                                                 ...
ERM – Entity-Relationship-Model

  Grafisches Hilfsmittel für den Datenbankentwurf,
   das von einem bestimmten Datenmode...
ERM → relationales Datenmodell: m:n-
  Beziehung

 Beispiel




22. April 2010 | Fachbereich 13 | Institut für Numerische ...
SQL (Structured Query Language)

  Ist eine Datenbanksprache zur Definition, Abfrage und
   Manipulation von Daten in rel...
SQL (Structured Query Language)

  SQL ist eine Structured Query Language:
     Kann mit SELECT-Anweisung unterschiedlic...
SQL – Datentypen




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan...
Weitere Tabellenparameter




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwese...
Vorgehensweise bei Erstellung einer DB

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


  MySQL
 CREATE DATABASE [IF NOT EXISTS] datenbankname;

     DB auswählen

 USE datenbankname;

 ...
SQL – Tabellen erstellen


  CREATE TABLE

         Syntax (mit Fremdschlüssel und automatische Aufzählung für ID)
     C...
SQL – Tabellen erstellen – Beispiel




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik ...
Fremdschlüsselparameter




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen ...
Fremdschlüsselparameter




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen ...
Tabellen mit m:n-Beziehung verknüpfen




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informati...
Datensätze eingeben


  INSERT INTO
     INSERT INTO
       tabellenname(datenfeld1,…,datenfeldX)
       VALUES(wert1,......
Verändern existierender Datensätze


  UPDATE

     UPDATE tabellenname
       SET feld1=wert1,…,feldX=wertX
       [WHER...
Löschen von Datensätzen


  DELETE
     DELETE FROM tabellenname [WHERE bedingung];


 Beispiel
     DELETE FROM Projekt ...
SQL – Datensätze abfragen


  SELECT
     SELECT [DISTINCT] feldX | * FROM tabellenname
     [WHERE bedingung] [ORDER BY ...
Graphviz - Graph Visualization Software


  http://www.graphviz.org/




22. April 2010 | Fachbereich 13 | Institut für N...
MySQL




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasem...
MySQL

  Frei verfügbarer Datenbankserver
  Hat im Gegensatz zu MS Access keine Benutzeroberfläche
  www.mysql.com
  A...
Benutzung von MySQL

  Starten des Datenbankservers
  Starten der MySQL-Benutzerschnittstelle von der
   Kommandozeile:
...
Benutzung von MySQL

  Befehle zur Verwaltung von Tabellen
     SHOW TABLES;
     SHOW COLUMNS FROM <tabellen_name>;
  ...
Benutzung der Kommandozeile

  Alle SQL – Statements sollen dokumentiert und mit abgegeben
   werden
  Die Eingabe von S...
SQL-Batchdateien


 Mehrere SQL-Befehle können über Textdatei MySQL
 übergeben werden

 1. Anlegen einer Textdatei z.B. be...
Datenbank sichern/ wiederherstellen

  Nutzung des Programms MySQLdump
  Sichern der Datenbank kunden in der Datei
   ku...
Besonderheiten des MySQL - SQL

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




                     Anwendung


                                                         SQL-Schnittstelle      ...
JDBC – Schnittstelle

  Ist realisiert durch einen JDBC Treiber (speziell für die MySQL
   Datenbank)
  Der Treiber best...
JDBC – Schnittstelle

  Weitere Klassen zum Arbeiten mit der Datenbank
   und mit SQL – Statements aus dem Package
   jav...
Ende




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemz...
Einführung in Java




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puy...
Aufbau einer Klasse


                                                                                                  Kl...
Deklaration von Attributen




           Deklaration von
           Attributen




22. April 2010 | Fachbereich 13 | Inst...
Deklaration und Definition von Methoden




         Methodenkopf
         Methodenkörper




22. April 2010 | Fachbereich...
main – Methode

  Ist eine Klassenmethode (nicht global)
  Einstiegspunkt in jede Java-Application
  Java Interpreter j...
Aufbau einer Klasse – Beispiel




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Ba...
Konstruktor




    Konstruktor
    aufrufen:



22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und In...
Ausnahmebehandlung

 Ausnahmebehandlung (Exception Handling) zum Abfangen und Protokollieren
 eines fehlerhaften Programmv...
Ausnahmebehandlung - Beispiel

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




22. Apri...
Packages

  Zugriff auf eine Klasse aus einem Package




          ●
              Die import Anweisung




         ●
 ...
Die Klassenbibliothek von Java (Java-API)

  Wird im JDK mitgeliefert
  Klassen sind in Pakete (packages) unterteilt, di...
Java API: Screenshot




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | P...
Nutzung der Klassenbibliothek

  Standard API kann einfach genutzt werden
  Weiter Pakete können wie folgt eingebunden
 ...
Nächste SlideShare
Wird geladen in …5
×

Iib2 hu1 ss2010_java-db

999 Aufrufe

Veröffentlicht am

Veröffentlicht in: Bildung
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
999
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
5
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Iib2 hu1 ss2010_java-db

  1. 1. Informatik im Bauwesen II SS 2010 1. Hörsaalübung Relationale Datenbanken / Webanwendungen Prof. Dr.-Ing. Uwe Rüppel Puyan Abolghasemzadeh, M.Sc. 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 1
  2. 2. Über mich  Puyan Abolghasemzadeh, M.Sc.  L501 / Raum 225a  Sprechstunde: Nur nach Vereinbarung!  06151/16-3644  puyan@iib.tu-darmstadt.de  Datenbanken für  Ingenieuranwendungen (DFI)  Informatik im Bauwesen I & II  Lernplattform BauKommPro 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 2
  3. 3. Forschungsthemen  Entfluchtungssimulationen  BIM basierte Modellierungen  Immersive Ingenieurmethoden (Virtual Reality)  Parallel Computing  Serious Gaming 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 3
  4. 4. Learning by doing 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 4
  5. 5. Einführung in BauKommPro (http://www.baukommpro.de) 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 5
  6. 6. Gliederung  Was wollen wir machen?  Java  Relationale Datenbanken  ERM  RD  SQL  MySQL  JDBC 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 6
  7. 7. Java vs. Python http://twistedmatrix.com/users/glyph/rant/python-vs-java.html 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 7
  8. 8. Was wollen wir machen?  Webbasierte Anwendung Server Relationale Internet Datenbank  Teil 1  Java, relationale Datenbanken, JDBC  Teil 2  HTML, dynamische Webseiten (Java Server Pages, Java Beans) 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 8
  9. 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 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 9
  10. 10. 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 10
  11. 11. Hilfsmittel zur 1. Hausübung  Thinking in Java, 4th Edition von 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/ 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 11
  12. 12. Java: ... und noch mehr Bücher und Quellen 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 12
  13. 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) 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 13
  14. 14. Java: Write Once, Run Everywhere Java Java plattformspezifische Quelltext Bytecode Compiler Interpreter Anweisungen 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 14
  15. 15. Java „Plattform“ Java Programm Java Runtime Environment Java API Win32 Win32 Betriebssystem Betriebssystem API Java Programm Java API Java Runtime Environment SUN Solaris Betriebssystem API SUN Solaris Betriebssystem 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 15
  16. 16. Java: Die erste Tasse Java /** /** * *The HelloWorldApp class implements an application that The HelloWorldApp class implements an application that * *simply displays "Hello World!" to the standard output. simply displays "Hello World!" to the standard output. */*/ class HelloWorldApp {{ class HelloWorldApp public static void main(String[] args) {{ public static void main(String[] args) System.out.println("Hello World!"); //Display the string 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. | 16
  17. 17. Java: Compilieren / Ausführen  Überprüfen der Java-Umgebung (Pfad zu Java-Entwicklungswerkzeugen z.B: C:j2sdk1.4bin)  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. | 17
  18. 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. | 18
  19. 19. Java Projekt mit NetBeans http://www.iib.bauing.tu- darmstadt.de/lehre/bauinfo3/downl oad/HU1.avi 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 19
  20. 20. Relationale Datenbanken 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 20
  21. 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. | 21
  22. 22. Konzept GUI Datenbank Datenbankentwurf (mit ERM) Interaktion (mit SQL) Umsetzung (mit relationales Datenmodell) 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 22
  23. 23. ERM – Entity-Relationship-Model  Grafisches Hilfsmittel für den Datenbankentwurf, das von einem bestimmten Datenmodell unabhängig ist  Hauptelemente des Modells  Entitäten (Entities) Entity  Beziehungen (Relationships) Relationship  Eigenschaften (Attribute) Attribute 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 23
  24. 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. | 24
  25. 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. | 25
  26. 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. | 26
  27. 27. SQL – Datentypen 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 27
  28. 28. Weitere Tabellenparameter 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 28
  29. 29. Vorgehensweise bei Erstellung einer DB 1. Datenbank anlegen (Container für Tabellen und andere Datenbank Datenbank Datenbankobjekte) 2. Erstellen der Tabellen (Spalten und Datentypen) Unternehmen Attribut Datentyp 3. Füllen der Tabellen mit Daten U.-Nr. Zahl U.-Name Text 4. Auswertung der Daten (Abfragen) und Löschen/Ändern der Daten SQL 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 29
  30. 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. | 30
  31. 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), Primärschlüssel FOREIGN KEY(FKname) Fremdschlüssel REFERENCES tabellenname(PKname) Primärschlüssel ); von Tabelle 2 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 31
  32. 32. SQL – Tabellen erstellen – Beispiel 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 32
  33. 33. Fremdschlüsselparameter 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 33
  34. 34. Fremdschlüsselparameter 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 34
  35. 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. | 35
  36. 36. Datensätze eingeben  INSERT INTO INSERT INTO tabellenname(datenfeld1,…,datenfeldX) VALUES(wert1,...,wertX); Beispiel 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 36
  37. 37. Verändern existierender Datensätze  UPDATE UPDATE tabellenname SET feld1=wert1,…,feldX=wertX [WHERE bedingung]; Beispiel 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. | 37
  38. 38. Löschen von Datensätzen  DELETE DELETE FROM tabellenname [WHERE bedingung]; Beispiel 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. | 38
  39. 39. SQL – Datensätze abfragen  SELECT SELECT [DISTINCT] feldX | * FROM tabellenname [WHERE bedingung] [ORDER BY fildX [ASC|DESC]]; Beispiel SELECT * FROM Projekt WHERE Proj_Kst>1000000; Beispiel 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. | 39
  40. 40. Graphviz - Graph Visualization Software  http://www.graphviz.org/ 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 40
  41. 41. MySQL 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 41
  42. 42. MySQL  Frei verfügbarer Datenbankserver  Hat im Gegensatz zu MS Access keine Benutzeroberfläche  www.mysql.com  Ausführliche Dokumentation online verfügbar http://dev.mysql.com/doc/  HRZ-Handbuch: SQL, Grundlagen und Datenbankdesign, HRZ 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 42
  43. 43. Benutzung von MySQL  Starten des Datenbankservers  Starten 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>; 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 43
  44. 44. Benutzung von MySQL  Befehle zur Verwaltung von Tabellen  SHOW TABLES;  SHOW COLUMNS FROM <tabellen_name>;  Standard SQL  Z.B. SELECT 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 44
  45. 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 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 45
  46. 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 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 46
  47. 47. Datenbank sichern/ wiederherstellen  Nutzung des Programms MySQLdump  Sichern 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 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 47
  48. 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. | 48
  49. 49. JDBC Anwendung SQL-Schnittstelle Relationale (z.B. ODBC, ADO, Datenbank DAO, JDBC) 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 49
  50. 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. | 50
  51. 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. | 51
  52. 52. Ende 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 52
  53. 53. Einführung in Java 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 53
  54. 54. Aufbau einer Klasse Klassenkopf Klassenkörper 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 54
  55. 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. | 55
  56. 56. Deklaration und Definition von Methoden Methodenkopf Methodenkörper 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 56
  57. 57. main – Methode  Ist eine Klassenmethode (nicht global)  Einstiegspunkt in jede Java-Application  Java 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. | 57
  58. 58. Aufbau einer Klasse – Beispiel 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 58
  59. 59. Konstruktor Konstruktor aufrufen: 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 59
  60. 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 { try { tuEtwas_WasBoeseEndenKann; tuEtwas_WasBoeseEndenKann; } catch (AusnahmeTyp variable) { } catch (AusnahmeTyp variable) { behandelnDerAusnahme; behandelnDerAusnahme; } finally { } finally { wirdImmerAusgefuehrt; wirdImmerAusgefuehrt; }} 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 60
  61. 61. Ausnahmebehandlung - Beispiel  Es gibt 2 Methoden, mit Exceptions umzugehen (Behandeln oder Weiterreichen) 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 61
  62. 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 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 62
  63. 63. Die Klassenbibliothek von Java (Java-API)  Wird im JDK mitgeliefert  Klassen 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/ 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 63
  64. 64. Java API: Screenshot 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 64
  65. 65. Nutzung der Klassenbibliothek  Standard API kann einfach genutzt werden  Weiter Pakete können wie folgt eingebunden werden  Kopieren der entsprechenden Pakete nach java_homejrelibext  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 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 65

×