Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

23
Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger

Transcript of Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Page 1: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Torque in Turbine

Team 3

Alexander Mittermair

Michael Wesinger

Page 2: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Themen

1. Was macht Torque?

2. Allgemeiner Überblick

3. Torque Build Properties

4. Torque Database Schema

5. Torque Run-Time-Properties

6. Generierungsschritte

7. Datenbank und Tabellen erstellen

8. Nutzung in JAVA

9. Interaktiver Teil

Page 3: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Was macht Torque?

Page 4: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Allgemeiner Überblick

• Als Teil des Turbine Frameworks entwickelt

• Nun Eigenständiges Projekt

• Object Persistance Layer

• Generiert– SQL Create Scripts– Notwendige Java-Klassen

Page 5: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Allgemeiner Überblick (2)

• Aufbauend auf Datenbank API Village

• Benutzt Peer Modell

• Laufzeitumgebung neben OM/Peer Klassen auch JDBC Connection Pool

Page 6: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Allgemeiner Überblick (3)

• Merkmale: (Auszug)– TorqueCreateDatabase– TorqueDataDTDTask– TorqueDataDumpTask– TorqueDataSQLTask– TorqueJDBCTransformTask

Page 7: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Torque Build Properties

• Java Source / Class Files erstellt

• Verwendet ANT für Build Properties

• (Entwicklungsumgebung aufzustellen)

– Eigenschaften setzen:

Torque.project = bookstore

Torque.database = mysql

Page 8: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Torque Database Schema

• XML file, die die SQL Datenbank in Torque darstellt (Tables, Spaltennamen und Typendef.)

• Im Schemaverzeichnis 2 XML files– id-table-schema.xml– project-schema.xml

Page 9: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Torque Database Schema (2)

• Bsp: Bookstore - Datenbank mit drei Table – Autor, Verleger, Buch– AutorID und VerlegerID Fremdschlüssel in

Buchtable

Genaueres später

Page 10: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Torque run time properties

• Notwendig wenn Applikation den von torque generierten Object-Model-Code ausführt

• Kontrollieren Datenbankparameter wie drivers, user name und passwords

Page 11: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Torque run time properties (2)

• run time property• log4j.rootCategory = DEBUG, default• log4j.appender.default =org.apache.log4j.FileAppender • log4j.appender.default.file = ./torque.log • log4j.appender.default.layout =

org.apache.log4j.SimpleLayout

• torque.database.default = bookstore • torque.database.bookstore.driver = org.gjt.mm.mysql.Driver • torque.database.bookstore.url =

jdbc:mysql://127.0.0.1/bookstore• torque.database.bookstore.username = user • torque.database.bookstore.password = password

Page 12: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Torque run time properties (3)

• torque.database.bookstore.username

User mit ausreichend Privilegien für DB-Zugriff

Page 13: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Generierungsschritt

• Objektmodell produziert Java Source Files

• Klassen ermöglichen Objekte zu löschen, editieren, auswählen

• Torque generiert SQL um Datenbanktabellen zu schaffen

• Folg. Befehl um zu generieren:– Ant –f build-torque.xml

Page 14: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Datenbank und Tabellen erstellen

• Torque kann die Datenbank und alle zugehörigen Teile automatisch erstellen

• Voraussetzung: Databasedriver im classpath, sodass Torque sich mit Datenbank verbinden kann.

• Wie geht das? Dem torque lib-Verzeichnis den Datenbankdriver hinzufügen

Page 15: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Datenbank und Tabellen erstellen (2)

• Datenbank anlegenant –f build-torque.xml create-db

• Tables anlegenant –f build-torque.xml id-table-init-sql

ant –f build-torque.xml insert-sql

Erfolg aufgezeigt durch <BUILD SUCCESSFUL>

Page 16: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Erzeugte Java Klassen (UML)Bsp.: Table Book

Page 17: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Funktionalität hinzufügbar

• 4 Klassen pro Table

• “non-Base” Dateien erweiterbar

• In Java Code

• Beispielsweise toString Methode

Page 18: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Anwendung in JAVA

• import org.apache.torque.*;• import org.apache.torque.util.*;

• Publisher Springer = new Publisher();• Springer.setName(“Springer Verlag”);• Springer.save();

• Author.setPublisherId(Springer.getPublisherId());

Page 19: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Abfragen in Java (1)

• Criteria test = new Criteria();• List test2 = PublisherPeer.doSelect(test);

• Criteria test = new Criteria()• test.add(PublisherPeer.Publisher_ID, “Springer Verlag”);

Page 20: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Fremdschluessel

• Book test = new Book()

• test.setAuthor(addison)

oder:

• test.setAuthor(addison.getPublisherId())

Page 21: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Weitere Informationen

• http://db.apache.org/torque/tutorial/index.html

• http://rzserv2.fhnon.de/~lg002556/torque/

Page 22: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

I see and I forget,I hear and I rememberI do and I understand

Page 23: Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.

Datenbank PFM

• Table Konto

• Column: • Knummer Integer

• Bezeichnung Varchar