SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Downloaden Sie, um offline zu lesen
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
Ü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
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
Learning by doing




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 4
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
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
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
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
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
22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 10
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
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
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
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
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
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
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
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
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
Relationale Datenbanken




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 20
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
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
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
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
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
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
SQL – Datentypen




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




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 28
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
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
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
SQL – Tabellen erstellen – Beispiel




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




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
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
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
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
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
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
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
MySQL




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 41
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
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
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
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
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
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
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
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
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
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
Ende




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




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 53
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
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
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
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
Aufbau einer Klasse – Beispiel




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




    Konstruktor
    aufrufen:



22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 59
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
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
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
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
Java API: Screenshot




22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 64
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

Weitere ähnliche Inhalte

Ähnlich wie Iib2 hu1 ss2010_java-db

Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEEguestc44b7b
 
Progressive Web Apps mit Angular
Progressive Web Apps mit AngularProgressive Web Apps mit Angular
Progressive Web Apps mit AngularJens Binfet
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6GFU Cyrus AG
 
Referat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler AnwendungenReferat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler AnwendungenDigicomp Academy AG
 
Web Services in interaktiven mathematischen Dokumenten
Web Services in interaktiven mathematischen DokumentenWeb Services in interaktiven mathematischen Dokumenten
Web Services in interaktiven mathematischen DokumentenChristoph Lange
 
Server Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerServer Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerSandro Sonntag
 
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederJSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederChristoph Pickl
 
Oberflächentests für JavaScript-Web-Apps – Mobile Tech Conference 2012 Autumn...
Oberflächentests für JavaScript-Web-Apps – Mobile Tech Conference 2012 Autumn...Oberflächentests für JavaScript-Web-Apps – Mobile Tech Conference 2012 Autumn...
Oberflächentests für JavaScript-Web-Apps – Mobile Tech Conference 2012 Autumn...OPITZ CONSULTING Deutschland
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsGFU Cyrus AG
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Jürg Stuker
 

Ähnlich wie Iib2 hu1 ss2010_java-db (16)

Informatik Curriculum NEU
Informatik Curriculum NEUInformatik Curriculum NEU
Informatik Curriculum NEU
 
Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEE
 
Progressive Web Apps mit Angular
Progressive Web Apps mit AngularProgressive Web Apps mit Angular
Progressive Web Apps mit Angular
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6
 
OSGi: Tools und Entwicklungsprozesse in OSGi Projekten
OSGi: Tools und Entwicklungsprozesse in OSGi ProjektenOSGi: Tools und Entwicklungsprozesse in OSGi Projekten
OSGi: Tools und Entwicklungsprozesse in OSGi Projekten
 
Referat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler AnwendungenReferat: Architektur und Entwicklung mobiler Anwendungen
Referat: Architektur und Entwicklung mobiler Anwendungen
 
Web Services in interaktiven mathematischen Dokumenten
Web Services in interaktiven mathematischen DokumentenWeb Services in interaktiven mathematischen Dokumenten
Web Services in interaktiven mathematischen Dokumenten
 
Server Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerServer Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM Server
 
JSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael GreifenederJSUG - OSGi by Michael Greifeneder
JSUG - OSGi by Michael Greifeneder
 
Oberflächentests für JavaScript-Web-Apps – Mobile Tech Conference 2012 Autumn...
Oberflächentests für JavaScript-Web-Apps – Mobile Tech Conference 2012 Autumn...Oberflächentests für JavaScript-Web-Apps – Mobile Tech Conference 2012 Autumn...
Oberflächentests für JavaScript-Web-Apps – Mobile Tech Conference 2012 Autumn...
 
Java EE 5
Java EE 5Java EE 5
Java EE 5
 
BSB Demo Day - Schlarb - Workflow-Design
BSB Demo Day - Schlarb - Workflow-DesignBSB Demo Day - Schlarb - Workflow-Design
BSB Demo Day - Schlarb - Workflow-Design
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
Illik verteilte systeme
Illik verteilte systemeIllik verteilte systeme
Illik verteilte systeme
 
Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001
 
20110119 activiti jughh
20110119 activiti jughh20110119 activiti jughh
20110119 activiti jughh
 

Iib2 hu1 ss2010_java-db

  • 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. Ü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. 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. Learning by doing 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 4
  • 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. 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. 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. 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. 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. 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 10
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Relationale Datenbanken 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 20
  • 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. 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. 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. 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. 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. 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. SQL – Datentypen 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 27
  • 28. Weitere Tabellenparameter 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 28
  • 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. 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. 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. SQL – Tabellen erstellen – Beispiel 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 32
  • 33. Fremdschlüsselparameter 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 33
  • 34. Fremdschlüsselparameter 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 34
  • 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. 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. 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. 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. 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. 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. MySQL 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 41
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Ende 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 52
  • 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. 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. 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. 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. 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. Aufbau einer Klasse – Beispiel 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 58
  • 59. Konstruktor Konstruktor aufrufen: 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 59
  • 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. 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. 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. 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. Java API: Screenshot 22. April 2010 | Fachbereich 13 | Institut für Numerische Methoden und Informatik im Bauwesen | Puyan Abolghasemzadeh, M.Sc. | 64
  • 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