170 likes | 272 Views
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation. Inhalt. Einfache und leistungsfähige Datenbank-Persistenzschicht Objekt-relationale Abbildung mit DBObjects Automatische Erzeugung der DBObjects
E N D
Esprit Database Suite • Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
Inhalt Einfache und leistungsfähige Datenbank-Persistenzschicht • Objekt-relationale Abbildung mit DBObjects • Automatische Erzeugung der DBObjects • Lokaler oder entfernter Datenbank Zugriff • Vielfach-Verbindungen mit ConnectionPool • GUI Darstellung in Tabellen, Listen und Formblättern • Zusammenbau komplexer, persistenter Objekte • Allgemein verwendbare Datenbank Tools • Einsatzfelder für DBObjects • Wichtigste Vorteile der DBObjects • Vergleich mit anderen Persistenz-Lösungen
DBObjects • DBObjects sind Java Objekte die Datensätze modellieren • DBObject Subklassen werden automatisch erzeugt für jede Tabelle:Tabelle: resistor Klasse:DBO_resistor.java • DBObjects implementieren die Objekt-relationale Abbildung • Flexibel bei Datenbank-Änderungen (lediglich Neuerzeugung)
Erzeugung der DBObjects DBObjects werden automatisch erzeugt mit dem DBOCompiler DBOCompiler liest die Tabellen Metadaten und erzeugt die DBObject Java Quelldateien. Für alle Tabellen der Datenbank werden Java Quelldateien erzeugt. • Läuft entweder interaktiv oder im Batchmode
Datenbank Zugriff • DBObjects ‘wissen‘ selbst wie sie mit der Datenbank kommunizieren müssen • Kein SQL erforderlich => Fehlersicher and RDBMS unabhängig. • Hoch performante Datenbank Zugriffe (gecachte Prepared Statements) • Einfachstes Lesen von und Speichern in der Datenbank. INSERT DBO_resistor SELECT DBO_resistor Datenbank DBO_resistor UPDATE DBO_resistor DBO_resistor DBO_resistor DELETE
Lokaler/entfernter Zugriff • Unterstützung für lokalen und entfernten Datenbank Zugriff • DBObjects können leicht übers Netz transportiert werden. • Clients können lokale oder entfernte Datenbankaktionen durchführen Entfernter Zugriff Client 1 MiddlewareServer DBO_resistor Datenbank Client 2 DBO_poti Lokaler Zugriff
Connection Pool • Connection-Pool verwaltet vielfache Datenbank-Verbindungen • Ermöglicht simultane Transaktionen (soviele, wie Verbindungen vorhanden). • Dynamisches Pooling: Anzahl der Verbindungen steigt und fällt nach Bedarf (im erlaubten Bereich). DBO_resistor ConnectionPool Datenbank DBO_diode DBO_poti
Datensatz Formulare • Erzeugt automatisch Formulare zum Editieren der Datensätze • DBObjects ‘kennen‘ ihre Datenbank Meta-Information • Insert/Edit-Formulare werden dynamisch aus Metadaten erzeugt • Keine Programmierung erforderlich für unten gezeigte Beispiele • Formulare sind leicht an Kundenbedürfnisse anpassbar Erzeugen eines neuen Datensatzes Ändern eines existierenden Datensatzes
Tabellen-Sicht • Tabellen-Sicht wird automatisch erzeugt • DBObjects ‘wissen‘ wie sie sich in einem GUI darstellen müssen • Tabellen-Sicht wird dynamisch aus Metadaten erzeugt • Keine Programmierung erforderlich für das unten gezeigte Beispiel • Darstellung ist leicht an Kundenbedürfnisse anpassbar
Listen-Sicht • Listen-Sicht wird automatisch erzeugt • Listen-Sicht wird dynamisch aus Metadaten erzeugt • Keine Programmierung erforderlich für das unten gezeigte Beispiel • Darstellung ist leicht an Kundenbedürfnisse anpassbar
Tabellen/Listen-Editor • Tabellen and Listen unterstützen insert/update/delete von Datensätzen Wählen Sie den Typ des Datensatzes Formblatt für den gewünschten Datensatz-Typ zur Eingabe neuer Datensätze Formblatt zum Editieren des selektierten Datensatzes
Daten Eingabefelder • Eingabefelder für alle üblichen Datentypen Datum/Zeit Eingabe Formblatt mit einigen beispielhaften Eingabefeldern Datei Auswahl
Persistente Objekte DBObjects zum Aufbau komplexer, persistenter Objekte • DBObjects sind Bausteine zum Zusammebau größerer Objekte • Einheitlicher Datenbankzugriff => Konsistenter Java Code • Kein Aufwand für GUI Darstellung persistenter Objekte • Unterstützung mehrerer Zusammenbau-Typen (1:N, Vererbung) Poti (extends ComposedRecord) Route (extends ComposedRecord) DBO_part DBO_route DBO_resistor DBO_poti DBO_poti DBO_poti DBO_vertex DBO_poti Vererbungs-Typ Listen-Typ (1:N)
Datenbank Tools • Allgemein verwendbare Datenbank Tools Funktionieren genau gleich für alle unterstützten Datenbanksysteme! • DBExecuteFührt SQL Kommando(s) in Datenbank aus • DBSelectMacht SQL Datenbank Abfrage(n), Ausgabe in Datei oder Console • UnlExportSchreibt Tabellendaten in ASCII Datei (UNL Format) • UnlImportLiest Datensätze aus UNL Dateien und füllt Datenbanktabelle
Einsatzfelder • Wo kann man DBObjects einsetzen? • Server Applikationen Für vielfach parallelläufigen Datenbankzugriff (Multi-Threaded services) • Client Applikationen Direkte Darstellung von Datensätzen in GUI Tabellen und Listen Einfache Datenübertragung von/zu Server (Serialisierung) Lokaler oder entfernter Zugriff auf Datenbank • Web Applikationen Als Datenbank Access Objects (DAOs) Als DAO-Beans im Zusammenspiel mit Struts • J2EE Applikationen Als EJB's (EntityBeans) mit Bean managed Persistence
Vorteile Wichtigste Vorteile • Kein Aufwand für objekt-relationale Abbildung • Einheitlicher, konsistenter Java Code, leicht zu warten • Sehr flexibel und fehlersicher bei Datenbank-Änderungen • Kein Aufwand für GUI Darstellung persistenter Objekte • Beschleunigt erheblich die Enwicklung von Datenbankanwendungen • Keine Abhängigkeit von Datenbank- und Betriebs-System • Speicher-effizient und hochperformant • Wesentlich geringere Entwicklungszeiten und -Kosten • Einfache Wartung und hohe Fehlersicherheit • Geeignete Technologie zur Ablösung alter 4GL Anwendungen!
Vergleich mit anderen • Was unterscheidet DBObjects von anderen Persistenz-Lösungen? • DBObjects werden direkt aus der Datenbank erzeugt. Keine (redundante) vorbereitende Definition erforderlich! • Pure Java Objekte – Kein post-Compiling der Klassen erforderlich (wie z.B. bei JDO Implementierungen) • Keine komplizierten Deployment-Deskriptoren etc…(wie bei JDO oder container managed EntityBeans) • Keine Abhängigkeit von Datenbank, Betriebssystem, Applikations- oder Webserver • Komplexe, persistente Objekte können aus DBObject-Bausteinen zusammengesetzt werden => Einfacher und einheitlicher Code. • Die Programmierung mit DBObjects ist besonders einfach • DBObjectssind per se direkt im GUI darstellbar