Eclipse und EclipseLink Johannes Michler Johannes.Michler@promatis.de PROMATIS, Ettlingen Zugriff auf Oracle Datenbanken aus Eclipse RCP Anwendungen via EclipseLink 18.09.2009 1
Gliederung Eclipse als Java Entwicklungsumgebung Eclipse RCP Persistenz und Java JPA und EclipseLink anhand einer kleinen Telefonbuch-Anwendung 2
Eclipse: Historie Integrierte Entwicklungsumgebung für Java Ursprünglich von IBM entwickelt Seit 2001 Open Source (Eclipse Public License) Seit Juni 2009: Version 3.5 Für alle gängigen Plattformen verfügbar - Windows - Linux - Mac - 3
Eclipse: Java IDE Java Entwicklungsumgebung - Syntax-Überprüfung und Hervorhebung - Code-Vervollständigung und -Formatierung - Vielfältige Restrukturierungsmittel Automatische Umbenennung von Paketen, Klassen, Methoden Extraktion von Klassen, Methoden Generierung von Konstruktoren, Get- und Set-Methoden Unterstützung bei der Internationalisierung - Komfortabler Debugger 4
Eclipse: Demo 5
Eclipse als Plattform Vielzahl von Erweiterungen vorhanden - Java EE und Webanwendungen - PHP - C/C++ - Modellierung - Reports (BIRT) - Mobile Anwendungen - Ajax Anwendungen (RAP) - Datenbanken (Data Tools Platform) - Insgesamt über 1500 Plugins (http://eclipse-plugins.2y.net/) 6
7
Eclipse: Architektur Leichtgewichtiger Kern, basierend auf Eclipse Equinox (OSGI) Darin eingebunden: Menge von Plugins Diese bilden beispielsweise die Java IDE Erweiterungsmöglichkeiten - Erstellen eigener Plugins für Eclipse - Bauen eigenständiger Anwendungen (RCP) Diese bestehen wiederum aus Plugins 8
Eclipse: GUI Konzepte Aufbau der GUI - Views und Editoren als Grundelemente - Perspektiven um diese Zusammenzufassen Basistechnologie SWT - Natives Look&Feel für jede Plattform - Tools zum GUI-Design OpenSource: VisualEditor Kommerziell: SWTDesigner 9
Eclipse RCP: Demo 10
Datenbankanbindung SQL-Verbindungen - Öffnen einer JDBC Verbindung - Absetzen von Select, update, insert, Anweisungen Nachteile: - Oft mühsam - Manuelle und fehlerträchtige Erstellung der SQL-Anweisungen - Gefahr von SQL Injection - Stored Procedures oft Plattformspezifisch Vorteile: - Sehr flexibel: beliebige SQL Anweisungen, Aufruf von PL/SQL - Theoretisch optimale Performance 11
Objekt-Relationale Abbildungen (Automatische) Abbildung zwischen - Java-Objekten und - Relationalen Tabellen Java Persistence API (JPA) - Persistenzteil von EJB 3 - Offizielle Brückentechnologie Java relationale Datenbanken - Standard der mehrere Implementierungen besitzt: Hibernate Apache OpenJPA EclipseLink (ehemals Oracle TopLink) 12
JPA: Entitäten Zentraler Punkt der JPA-Spezifikation Spezielle Form von Klassen - Können persistente Instanzen besitzen - Deklaration über @Entity Annotation - Benötigen Argumentlosen Konstruktor - Dürfen nicht final sein 13
JPA: weitere Annotationen @Table @Id - Definition der verwendeten Tabelle - Wenn nicht definiert: Klassenname - Feld als Primärschlüssel festlegen - @GeneratedValue @Column um Index automatisch zu füllen - Zur Abbildung Attribut der Klasse Tabellenspalte - Mit sinnvollen Standardwerten versehen @Entity @Table(name="Personen") public class Person { @Id @GeneratedValue private long id; @Column(name="Name") private String m_name; 14
JPA: Beziehungen zwischen Entitäten Verweise auf andere Entitäten - 1:1 @OneToOne - N:1 @ManyToOne - 1:N @OneToMany - N:M @ManyToMany In Java: Abbildung mittels Behältertypen (Liste, Menge) In der Datenbank: Fremdschlüssel oder Join-Tables @OneToMany(cascade=CascadeType.ALL, mappedby="m_group") private final List<Person> m_persons = new ArrayList<Person>(); 15
JPA: Demo Annotation Datenmodell 16
JPA: EntityManagerFactory EntityManager EntityManagerFactory 17
JPA: Lebenszyklus von Entitäten 18
JPA: Demo EMF 19
Fragen?! Mail: Johannes.Michler@promatis.de 20