Java Persistenz mit JPA und Hibernate. Michael Plöd - Senacor Technologies AG
|
|
- Heini Brodbeck
- vor 8 Jahren
- Abrufe
Transkript
1 Java Persistenz mit JPA und Hibernate Michael Plöd - Senacor Technologies AG
2 Michael Plöd Partner bei Senacor Technologies AG Hibernate Erfahrung seit 2002
3 Ihr Hintergrund Erfahrung mit Java? Erfahrung mit Java Persistenz? Tägliche Projektarbeit? Einsatz von Hibernate im Projekt? Ihre Erwartungen an die Schulung?
4 Agenda Zeit Thema 08:00-09:00 Einleitung und theoretische Grundlagen 09:00-09:30 Hibernate im Überblick 09:45-10:30 Mapping von Klassen 10:30-11:15 Arbeiten mit Hibernate 11:15-11:45 Queries
5 Datenbank Java Anwendung <<TABLE>> FOTOS ID <PK> NAME... Foto <<TABLE>> FOTOS_IN_GALERIEN PIC_ID <PK><FK> GAL_ID <PK><FK> Object-Relational Impedance Mismatch 0..* 0..* Galerie <<TABLE>> GALERIEN ID <PK> TITEL...
6 Impedance Mismatch Identität Granularität Vererbung Datenbank Primärschlüssel Erstellung eigener Datentypen sehr proprietär Vererbung nur durch Datenmodell OO-Software Objekt-Identität Objekt-Gleichheit Identity vs Equality Eigene Typen können jederzeit erstellt werden Vererbung ist Bestandteil von OO-Software Navigation Assoziationen Navigation in jeder Richtung ohne Einschränkbarkeit möglich Navigation über Joins Join-Tabellen bei n:m Navigation wird explizit deklariert Gerichtete Navigation somit möglich To-One Relationen (Pointer) To-Many Relationen (Collections)
7 Java Persistenz Feature-Set Hibernate JDBC ist Java SE Standard JPA 2.0 ibatis und Spring JDBC Template sind JDBC Frameworks JPA 1.0 ibatis JPA 1, JPA 2 und Hibernate sind OR- Mapper JDBC-Template JDBC Code Menge / Komplexität
8 JDBC ist doch einfach
9 Einfacher Select mit JDBC List<User> users = new ArrayList<User>(); Class.forName( org.postgresql.driver ); Connection con = DriverManager.getConnection(url, username, password); Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery( SELECT * FROM USERS ); while(rs.hasnext()) { User u = new User(); u.setname(rs.getstring(1)); users.add(u); } rs.close(); stmt.close(); con.close();
10 ! Exception Handling fehlt
11 Einfacher Select mit JDBC try { List<User> users = new ArrayList<User>(); Class.forName( org.postgresql.driver ); Connection con = DriverManager.getConnection(url, username, password); Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery( SELECT * FROM USERS ); while(rs.hasnext()) { User u = new User(); u.setname(rs.getstring(1)); users.add(u); } rs.close(); stmt.close(); con.close(); } catch (SQLException e) { //Exception Handling }
12 Resource Leaks
13 Einfacher Select mit JDBC Connection con = null; Statement stmt = null; ResultSet rs = null; try { List<User> users = new ArrayList<User>(); Class.forName( org.postgresql.driver ); con = DriverManager.getConnection(url, username, password); stmt = con.createstatement(); rs = stmt.executequery( SELECT * FROM USERS ); while(rs.hasnext()) { User u = new User(); u.setname(rs.getstring(1)); users.add(u); } rs.close(); stmt.close(); con.close(); } catch (SQLException e) { //Exception Handling } finally { if(rs!= null) { try {rs.close();} catch (SQLException e) {...}; } if(stmt!= null) { try {stmt.close();} catch (SQLException e) {...}; } if(con!= null) { try {con.close();} catch (SQLException e) {...}; } }
14 JDBC Frameworks Eigenschaften Pro Contra Beispiele Adressieren Komplexität von JDBC Bieten wiederverwendbare Komponenten Einfache Typ Mappings (z.b. RowMapper) Einfach zu benutzen Wenige Fallstricke Auch für extrem komplexe Legacy Datenbanken geeignet Begrenztes Caching Beschränkte Typ Mappings Zahlreiche manuelle Aufrufe Spring JDBCTemplate ibatis
15 OR-Mapper Eigenschaften Pro Contra Adressieren Komplexität von JDBC Komplette Typ Mappings Ausgefeiltes Caching System Transaktionales Write-Behind Einfach zu benutzen Caching Code-Menge Manchmal komplex Schwächen bei schlecht entworfenen Legacy Datenbanken Beispiele Hibernate EclipseLink Open JPA
16 Aufbau eines OR- Mappers Configuration Factory 2nd Level Cache Persistence Context 1st Level Cache
17 Abbildung auf Datenbank Person Adresse Konto public class Person { private Adresse adresse; private Set<Konto> konten; } //... getter und setter XML Mapping Annotationen PERSONEN KONTEN
18 Aufbau von JPA Persistence EntityManager Factory 2nd Level Cache EntityManager 1st Level Cache
19 Aufbau von Hibernate Configuration SessionFactory 2nd Level Cache Session 1st Level Cache
20 Hibernate s Module ORM EntityManager Shards Search OGM Bean Validation Kern von Hibernate OR-Mapping Engine XML- und Annotation-Mappings JPA Implementierung auf Basis von Core und Annotations Unterstützung für verteilte Datenbestände Von Google Mächtige Volltext-Suche Basiert auf Lucene Hibernate für NoSQL Stores DDL Generierung Validierung DDL Generierung
21 Transaktionales Write-Behind begin commit Transaktion Session open saves: 1 saves: 1 updates: 1 close session.save(person) Logik session.update(konto) INSERT UPDATE DATENBANK
22 Agenda Zeit Thema 08:00-09:00 Einleitung und theoretische Grundlagen 09:00-09:30 JPA im Überblick 09:45-10:30 Mapping von Klassen 10:30-11:15 Arbeiten mit Hibernate 11:15-11:45 Queries
23 JPA im Überblick
24 Aufbau von JPA Persistence EntityManager Factory 2nd Level Cache EntityManager 1st Level Cache
25 Einfaches public class Person private long id; private String vorname; private String nachname; private long getid() { return id; } private void setid(long id) { this.id = id; } Person ID NUMBER <PK> VORNAME VARCHAR NACHNAME VARCHAR //... weitere getter und setter } //... equals und hashcode
26 Konfiguration META-INF/persistence.xml <persistence xmlns=" xmlns:xsi=" xsi:schemalocation=" version="2.0"> <persistence-unit name="test"> <class>com.senacor.schulung.hibernate.domain.person</class> <properties> <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcdriver" /> <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:hsql://localhost/testdb" /> <property name="javax.persistence.jdbc.user" value="sa" /> <property name="javax.persistence.jdbc.password" value="" /> <property name="hibernate.dialect" value="org.hibernate.dialect.hsqldialect"/> </properties> </persistence-unit> </persistence>
27 Initialisierung EntityManagerFactory Aus persistence.xml wird einmalig EntityManagerFactory erstellt EntityManagerFactory entitymanagerfactory = Persistence.createEntityManagerFactory( "test" );
28 Arbeiten mit JPA 1. EntityManager erstellen 2. Transaktion starten 3. Operationen durchführen 4. Transaktion committen 5. EntityManager schließen EntityManager e = emf.createentitymanager() User u = new User(); u.setname("testuser"); e.gettransaction().begin(); e.persist(u); e.gettransaction().commit(); e.close();
29 Agenda Zeit Thema 08:00-09:00 Einleitung und theoretische Grundlagen 09:00-09:30 JPA im Überblick 09:45-10:30 Mapping von Klassen 10:30-11:15 Arbeiten mit Hibernate 11:15-11:45 Queries
30 Einfache Mappings Domänenmodellierung Entitäten Attribute Primärschlüssel Value Objects Assoziationen
31 Identifikation von Entitäten und Value Objects Ein gutes Domänenmodell unterscheidet zwischen Entitäten und Value Objects Des Weiteren ist die Navigation im Modell klar gegliedert und folgt einheitlichen Richtlinien Fokus des Modells sollte primär Fachlichkeit sein
32 Entitäten konstante Identität eigenen besitzen eine und einen Lebenszyklus
33 Identität durch Attribute bestimmt Kein eigener Lebenszyklus Value Objects
34 Buchtip: Domain Driven Design von Eric Evans Addison Wesley Verlag ISBN:
35 Mapping von Entitäten Eine Entität muss gemappt werden Eine Entität muss einen annotierten Primärschlüssel haben Eine Entität muss einen No-Arg Constructor haben
36 Beispiel PERSONEN ) public class Person private long id; private String vorname; private String nachname; private long getid() { return id; } private void setid(long id) { this.id = id; } PERSONEN ID NUMBER <PK> VORNAME VARCHAR NACHNAME VARCHAR //... weitere getter und setter } //... equals und hashcode
37 Primärschlüssel- private long id; Default: manuell gesetzter Primärschlüssel
38 Generierungs Strategien Name Description increment Generiert long, int, short basierend auf Tabelle. Nicht in Cluster! identity Identity Columns in DB2, MySQL, MS SQL Server, Sybase, HSQL sequence Sequence in DB2, PostgreSQL, Oracle, SAP DB, McKoi, Interbase hilo HI/LO Algorithmus basierend auf Tabelle seqhil HI/LO Algorithmus basierend auf Sequence uuid 128-bit UUID Algorithmus, auf Netzwerk eingeschränkt guid GUID String in MS SQL Server und MySQL native Identity, Sequence oder hilo je nach Datenbank assigned ID wird von Applikation zugewiesen select Zieht ID, die durch Trigger vergeben wird foreign Zieht ID, die durch anderes Objekt vergeben wird sequence-identity Spezialisierte Sequence Generierung basierend auf JDBC 3
39 Primärschlüssel- ( name= SEQ, sequencename= seq_person ) public class strategy=generationtype.sequence, generator= SEQ ) private long id;
40 Primärschlüssel- ( name="tab_gen", table="generator_table", pkcolumnname = "key", valuecolumnname = "hi", pkcolumnvalue = "PERS", allocationsize = "20") public class strategy=generationtype.table, generator= TAB_GEN ) private long id;
41 Mapping von Attributen Platzierung von Annotationen auf Attribut oder Getter-Ebene möglich Platzierung entscheidet über Zugriff (via Reflection oder über Getter) Default: jedes nicht annotierte Attribut ist persistent Alle gängigen Typen werden unterstützt
42 Mapping von für Spaltenkonfiguration Sondermappings für Date und (B)LOB für nicht-persistente Attribute
43 @Entity public class Person PERS_ID ) private long id; PERS_VORNAME, nullable= false ) private String PERS_NACHNAME, nullable= false ) private PERS_GEBURTSTAG) private Date private short alter;... }
44 Mapping von Value Objects Beispiel: Person ist Entität mit konstanter ID, Adresse ist einfaches Objekt ohne konstante ID Person id : long vorname : String nachname : String Adresse strasse : String plz : String stadt : String
45 Mapping von Value Objects Notation Value Object ist in Java nicht vorgesehen Value Object ist einfaches Attribut von Entität Value Object hat keinen eigenen Lebenszyklus Lebenszyklus wird von Entität gesteuert
46 Value Object - public class Adresse ADR_STRASSE ) private String ADR_PLZ ) private String ADR_STADT ) private String stadt; }... getter und public class Person private long id; private String vorname; private String nachname; PERSON ID NUMBER <PK> VORNAME VARCHAR NACHNAME VARCHAR ADR_STRASSE VARCHAR ADR_PLZ VARCHAR ADR_STADT private Adresse anschrift }...
47 Value Object - public class strasse, column=@column(name= PERS_ADR_STRASSE plz, column=@column(name= PERS_ADR_PLZ stadt, column=@column(name= PERS_ADR_STADT )) }) private Adresse public class Adresse ADR_STRASSE ) private String ADR_PLZ ) private String ADR_STADT ) private String stadt; }... getter und setter }...
48 Mapping von Relationen JPA unterstützt folgende Relationen One-To-One One-To-Many Many-To-Many Unterscheidung zwischen uni- und bidirektionalen Relationen Unterstützung für List, Map, Value Objects
49 Relationen Teil 1 Unidirektionale Relation geht nur in eine Richtung und ist daher einfach und empfehlenswert JPA verwaltet bi-direktionale Relationen nicht von selbst (siehe fortgeschrittene Mappings) Best Practice: Aggregate
50 Aggregate gruppieren Entitäten <Entität> Selbstauskunft <Root <Entität> Entität> Kreditantrag <Root <Entität> Entität> Kunde <Entität> TilgungsDetail <Entität> Darlehen <Entität> Adresse
51 Many-To-One Person id : long vorname : String nachname : String Konto nummer : String blz : String PERSON ID NUMBER <PK> VORNAME VARCHAR NACHNAME VARCHAR KONTO_ID NUMBER <FK> KONTO ID NUMBER <PK> NUMMER NUMBER BLZ VARCHAR
52 public class Person private long id; private String vorname; private String private Konto konto public class Konto private long id; private Integer nummer; private String blz; }...
53 public class Person private long id; private String vorname; private PERS_KTO_ID, nullable=false) private Konto konto public class Konto private long id; private Integer nummer; private String blz; }...
54 One-To-Many Person id : long vorname : String nachname : String Konto nummer : String blz : String PERSON ID NUMBER <PK> VORNAME VARCHAR NACHNAME VARCHAR KONTO ID NUMBER <PK> NUMMER NUMBER BLZ VARCHAR PERSON_ID NUMBER <FK>
55 public class Person private long id; private String vorname; private String nachname; Ungeordnete private Set<Konto> konten = new HashSet<Konto>(); public class Konto private long id; private Integer nummer; private String blz; }...
56 public class Person private long id; private String vorname; private KTO_PERSON_ID ) private Set<Konto> konten = new HashSet<Konto> public class Konto private long id; private Integer nummer; private String blz; }...
57 One-To-Many mit public class Person private long id; private String vorname; private KTO_PERSON_ID KTO_ORDER ) private List<Konto> konten = new ArrayList<Konto>(); Spalte wird benötigt, die Reihenfolge persistiert }... KONTO ID NUMBER <PK> NUMMER NUMBER BLZ VARCHAR KTO_PERSON_ID NUMBER <FK> KTO_ORDER NUMBER
58 One-To-One Shared Primary Key Person id : long vorname : String nachname : String Konto nummer : String blz : String PERSON ID NUMBER <PK> VORNAME VARCHAR NACHNAME VARCHAR KONTO ID NUMBER <PK><FK> NUMMER NUMBER BLZ VARCHAR
59 One-To-One Shared Primary public class Person private private Konto konto... public class = name = "myforeigngenerator", strategy = "foreign", parameters = "property", value = "owner") ) private long id; private Person owner;... }
60 One-To-One Unique Foreign Key Person id : long vorname : String nachname : String Konto nummer : String blz : String PERSON ID NUMBER <PK> VORNAME VARCHAR NACHNAME VARCHAR KONTO_ID NUMBER <FK><UNIQUE> KONTO ID NUMBER <PK> NUMMER NUMBER BLZ VARCHAR
61 One-To-One Unique Foreign public class Person private long id; private String vorname; private String KONTO_ID, nullable=false) private Konto public class Konto private long id; private Integer nummer; private String blz; }...
62 Bidirektionale Relationen JPA verwaltet bi-direktionale Relationen nicht von selbst Im Code muss Konsistenz garantiert werden! Ein Ende ist invers, d.h. JPA ignoriert diesen Teil bei Verwaltung und Mapping verweist auf das nicht-inverse Ende Sonst: doppeltes Fremdschlüssel Mapping Tip: Bidirektionale Mappings nach Möglichkeit vermeiden
63 Many-To-One Bidirektional Person id : long vorname : String nachname : String Konto nummer : String blz : String PERSON ID NUMBER <PK> VORNAME VARCHAR NACHNAME VARCHAR KONTO_ID NUMBER <FK> KONTO ID NUMBER <PK> NUMMER NUMBER BLZ VARCHAR
64 Many-To-One / public class Person private long id; private String vorname; private String PERS_KTO_ID, nullable=false) private Konto konto... public class Konto private long id; private Integer nummer; private String konto ) private Set<Person> eigentuemer = new HashSet<Person>(); }...
65 Verwaltung von Bidirektionalen public class Konto private long id; private Integer nummer; private String konto ) private Set<Person> eigentuemer = new HashSet<Person>(); } public void addeigentuemer(person p) { if (p == null) { throw new IllegalArgumentException( p is null ); } if(p.getkonto()!= null) { p.getkonto().geteigentuemer().remove(p); } geteigentuemer().add(p); p.setkonto(this); }...
66 Many-To-Many Person id : long vorname : String nachname : String Team name : String PERSON PERS_TEAM TEAM ID NUMBER <PK> VORNAME VARCHAR NACHNAME VARCHAR PERS_ID NUMBER <FK> TEAM_ID NUMBER <FK> ID NUMBER <PK> NAME VARCHAR
67 public class Person private PERS_TEAM, joincolumns PERS_ID ), inversejoincolumns TEAM_ID ) ) private Set<Team> teams = new HashSet<Team>(); public class Team private long id; private String name; teams ) private Set<Person> personen = new HashSet<Person>();...
68 Lebenszyklus und transitive Persistenz Entitäten haben einen eigenständigen Lebenszyklus TransientObjectException bei folgendem Code ohne transitive Persistenz Konto k = new Konto(); Person p = new Person();... k.setperson(p); session.save(k);
69 Cascade konfiguriert transitive Persistenz JPA unterstützt folgende Cascades ALL PERSIST MERGE REMOVE REFRESH DETACH Hibernate hat andere Semantik!
70 public class Person private long id; private String vorname; private String private Konto konto }...
71 Sonderfall: Orphan Deletion Nur für Collections Löscht eine Entität wenn sie aus einer Collection entfernt wird Zwei Konfigurations / ManyToMany CascadeType.DELETE_ORPHAN)
72 Agenda Zeit Thema 08:00-09:00 Einleitung und theoretische Grundlagen 09:00-09:30 JPA im Überblick 09:45-10:30 Mapping von Klassen 10:30-11:15 Arbeiten mit Hibernate 11:15-11:45 Queries
73 Arbeiten mit JPA und Hibernate Lebenszyklus von Entitäten EntityManager / Session API
74 Lebenszyklus von Entitäten new() Transient gc save() / persist() saveorupdate() merge() Session.get().load().getReference().find() Persistent delete() remove() Removed gc Query.list().uniqueResult().iterate().scroll().getResultList().getSingleResult() evict() clear() close() Detached update() saveorupdate() merge() gc
75 Lebenszyklus von Entitäten Zustand Von Hibernate Verwaltet Datenbank ID transient nein nein persistent ja ja detached nein ja
76 Speichern Ein Objekt wird persistent session.save() gibt die generierte ID sofort zurück (return Serializable) em.persist() gibt keine ID zurück (return void)
77 Löschen em.remove() und session.delete() löschen eine Entity und setzen den Status removed remove() ist JPA API Löschen grosser Datenbestände über HQL hibernate.use_identifier_rollback = true setzt den ID Wert zurück (Status = transient )
78 Laden get() und load() laden persistente Entities find() und getreference() sind JPA API existiert existiert nicht Zugriff get() Entity null Entity / null find() Entity null Entity / null load() Proxy Proxy Entity / Exception getreference() Proxy Proxy Entity / Exception
79 Updates Default: alle Spalten sind im Update enthalten dynamic-update= true bewirkt dynamische SQL Generierung Eigene Dirty Checking Implementierung kann in Interceptor (finddirty())implementiert werden
80 Reattaching session.update() löst immer SQL update aus select-before-update konfiguriert dirty check mittels SELECT (ineffizient, aber bei on update Triggern interesssant) lock() löst kein update aus, sondern führt nur Reattach durch
81 Reattaching merge() verhindert NonUniqueObjectException Das übergebene Objekt ist nicht attached, sondern das zurückgegebene Kopiert alle Properties und Collections Transiente Objekte werden gespeichert
82 Reattaching Objekt mit gleicher ID bereits in Session merge Objekt in Session wird überschreiben saveorupdate NonUniqueObjectException Objekt ist Transient INSERT INSERT Zustand übergebenes Objekt Transient / Detached Persistent Zustand Rückgabe Objekt Persistent - (returns void) Bestandteil von JPA ja nein
83 Agenda Zeit Thema 08:00-09:00 Einleitung und theoretische Grundlagen 09:00-09:30 JPA im Überblick 09:45-10:30 Mapping von Klassen 10:30-11:15 Arbeiten mit Hibernate 11:15-11:45 Queries
84 Arbeiten mit Queries Query q = em.createquery( from Person p where p.nachname = :nachname ).setparameter( nachname, Müller ).setfirstresult(20).setmaxresults(10); List ergebnisse = q.getresultlist(); Query q = em.createquery( from Person p where p.username = :login ).setstring( login, meinlogin ) Person p = (Person)q.getSingleResult(); Criteria c = session.createcriteria(person.class); c.setfirstresult(20); c.setmaxresults(19); List ergebnisse = q.list();
85 name= findpersonbyusername, query= from Person p where p.username = :login ) public class @Column(name= PERS_ID ) private long PERS_USERNAME ) private String username; }... Query q = em.createnamedquery( findpersonbyusername ).setparameter( login, username); List ergebnisse = q.getresultlist();
86 JPA-QL Textuelle Abfrage Sprache Ähnlich zu SQL Geht gegen Objekte und nicht gegen Tabellen Voll Objektorientiert Starkte Verwandschaft zu HQL Query Objekt wird über EntityManager bezogen
87 Einfache JPQL Beispiele from Person Diese Abfragen from Person as p select p from Person as p machen alle das selbe select p from Person p SQL: SELECT * FROM PERSONEN
88 JPQL ist polymorph from Zahlungsart Zahlungsart from LastschriftEinzug from Kreditkarte Lastschrift Kreditkarte from java.lang.object from java.io.serializable
89 Einschränkungen mit where from Person where username = :login from Person p where p.adresse.strasse = :strasse from Person p where p. like %@senacor.% and p.adresse.stadt = Nürnberg and p.lastlogin < :vorgestern
90 Sortierung mit order by from Person p order by p.lastname asc from Person p order by p.lastname asc, p.firstname asc
91 Selektion select p.lastname, p.firstname from Person p Gibt Object Array zurück Rückgabewerte sind keine Entitäten!
92 Aggregation und Gruppierung select p.adresse.stadt, count(p) from Person p group by p.adresse.stadt select p.adresse.stadt, count(p) from Person p group by p.adresse.stadt having p.adresse.stadt like Bad %
93 Inner und Outer Join PERS_ID PERS_NAME... KTO_id... KTO_NR 1 Michael Michael Tina Tina Tina SELECT p.*, k.* FROM Person p INNER JOIN Konto k on p.id = k.pers_id PERS_ID PERS_NAME... KTO_id... KTO_NR 1 Michael Michael Tina Tina Tina Sepp null null 4 Melanie null null SELECT p.*, k.* FROM Person p LEFT OUTER JOIN Konto k on p.id = k.pers_id
94 Joins in JPQL Implizite Navigation from Person p where p.adresse.stadt = Regensburg Inner Join from Person p join p.konten k where k.balance > 0 Fetch Join from Person p left join fetch p.konten
95 QueryDSL
96 Einführung Typ-sicher durch Annotation Processor Unterstützung für SQL, Hibernate / JPA und MongoDB, JDO, Lucene Volle Code Completion Fluent-API
97 Maven <project> <build> <plugins>... <plugin> <groupid>com.mysema.maven</groupid> <artifactid>apt-maven-plugin</artifactid> <version>1.0.6</version> <executions> <execution> <goals> <goal>process</goal> </goals> <configuration> <outputdirectory>target/generated-sources/java</outputdirectory> <processor>com.mysema.query.apt.jpa.jpaannotationprocessor</processor> </configuration> </execution> </executions> </plugin>... </plugins> </build> </project>
98 Formulierung von Abfragen HibernateQuery query = new HibernateQuery(session); JPAQuery query = new JPAQuery(entityManager);
99 Einschränkungen mit Restrictions QPerson person = QPerson.person; Person p = query.from(person).where(person.username.eq( ploed )).uniqueresult(person); QPerson person = QPerson.person; List<Person> p = query.from(person).where(person.alter.between( 10, 14 ), person.lastname.like( P% )).list(person);
100 Sortierung mit orderby QPerson person = QPerson.person; List<Person> p = query.from(person).where(person.alter.between( 10, 14 ), person.lastname.like( P% )).orderby(person.lastname.asc()).list(person);
101 Gruppierung mit Projections QPerson person = QPerson.person; JPAQuery query = new JPAQuery(entityManager); List<Object[]> result = query.from(person).groupby(person.adresse.stadt).listdistinct(person.adresse.stadt, person.adresse.stadt.count();
102 Joins QPerson person = QPerson.person; JPAQuery query = new JPAQuery(entityManager); List<Person> l = query.from(person).innerjoin(person.fotos).orderby(person.username.asc()).distinct().list(person);
Gregor Raschke 2008 HIBERNATE. Eine Einführung
1 HIBERNATE Eine Einführung Inhalt 2 Einleitung Beispielkonfiguration Die hibernate.cfg.xml Eine Beispieltransaktion Abfragemöglichkeiten JPA und Hibernate Ressourcen und Quellen Einleitung (1) - Geschichtliches
MehrDatenzugriffskomponente mit JPA 2.1
Datenzugriffskomponente mit JPA 2.1 (Grundlagen der Java Persistence Architecture) Vladislav Faerman Gliederung Einführung Konfiguration Objekt-Relationales Mapping (ORM) mit JPA Das zentrale Konzept der
MehrWorkshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk
Workshop Java Webentwicklung Einführung in Hibernate Ulrich Stärk Ablauf Montag bis Donnerstag 09:00 Uhr s.t. Beginn, bis ca. 17:00 Uhr 1 Stunde Mittagspause Donnerstag Experiment Aufzeichnung der Programmiertätigkeit
MehrÜbungsaufgabe Transaktion als Middleware
Übungsaufgabe Transaktion als Middleware und Java Persistence API Client/Server Abstraktes Komponentenmodell Entscheidende Punkte Erweiterung der Invoke-Methode Context-Verwaltung Transaktionsbehandlung
MehrJava Persistence API 2.x. crud + relationships + jp-ql
Java Persistence API 2.x crud + relationships + jp-ql Grundprinzip 10.02.10 2 Problematik Man muss bei der Persistierung immer das Klassenmodell und dessen Umsetzung im Datenmodell (in der DB) berücksichtigen.
MehrInhaltsverzeichnis. Bernd Müller, Harald Wehr. Java Persistence API 2. Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN:
Inhaltsverzeichnis Bernd Müller, Harald Wehr Java Persistence API 2 Hibernate, EclipseLink, OpenJPA und Erweiterungen ISBN: 978-3-446-42693-1 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42693-1
MehrDatenbankpraktikum, Gruppe F. JPA mit Hibernate. Alexander Stautner, Harald Zauner, Sascha Schreier
JPA mit Hibernate Alexander Stautner, Harald Zauner, Sascha Schreier Agenda Objektrelationales Mapping JPA / Hibernate Demo # 2 Objektrelationales Mapping Objektorientierte Welt Objekte Objektidentität
MehrJava Persistence API. Phillip Ghadir Oliver Tigges
Phillip Ghadir phillip.ghadir@innoq.com Oliver Tigges oliver.tigges@gmx.de Was wissen Sie in 45 Minuten? Wie man mit JPA entwickelt. Dass wir viele Eigenschaften von JPA ausgelassen haben. Dass Sie nicht
MehrOracle: Abstrakte Datentypen:
Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8
MehrOR-Mapping. WS2008/2009 DBIS/Dr. Karsten Tolle
OR-Mapping Zwei Paradigmen treffen aufeinander Gegensätze OO vs. Relational: Stichwort: O/R Impedance Mismatch Person Tabellen mit Schlüssel und Fremdschlusselbeziehungen. Abt-Nr. beschäftigt Pk-Nr Name
MehrAnalyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz
Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit
MehrKapitel 14. Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) Prof. Dr. Wolfgang Weber Vorlesung Datenbanken
Kapitel 14 Objekt-relationales Mapping (ORM) mit Hibernate bzw. Java Persistance API (JPA) 1 Wozu Objekt-relationales Mapping? - Problematik - Business-Schicht OO-Klassen Unvereinbarkeit der Paradigmen
MehrReferent: Marko Modsching. Vortrag: JPA mit Hibernate. Datum: 04.01.2011. Deutsche Software Engineering & Research GmbH
Referent: Marko Modsching Vortrag: JPA mit Hibernate Datum: 04.01.2011 Deutsche Software Engineering & Research GmbH Steinstraße 11 02826 Görlitz Germany Telefon: +49 35 81 / 374 99 0 Telefax: +49 35 81
MehrHibernate Das Praxisbuch für Entwickler
Sebastian Hennebrüder 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Hibernate Das Praxisbuch für Entwickler Galileo
MehrOrientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Version: 2014 Orientation 1.0 in Objects GmbH Der Sprecher Erik Bamberg (OIO) 2 1 s Aufgaben des Cachings Datenbank
MehrJava Persistence API mit Hibernate
Seminarunterlage Version: 6.02 Version 6.02 vom 4. April 2018 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen
MehrJDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.
JDBC in 5 Schritten JDBC (Java Database Connectivity) ist eine Sammlung von Klassen und Schnittstellen, mit deren Hilfe man Verbindungen zwischen Javaprogrammen und Datenbanken herstellen kann. 1 Einrichten
MehrHibernate. Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen. Nabil janah 1 Hibernate
Hibernate Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen Nabil janah 1 Hibernate Inhalt Hibernate allgemeines Vorteile von Hibernate Hibernate-Architektur
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrRene Böing, Alexander Kuhn, Marc Wilmes Einführung in Spring und Hibernate
1 von 43 Rene Böing, Alexander Kuhn, Marc Wilmes Einführung in Spring und Hibernate 27.11.11 Agenda Einleitung Ist-Zustand Bookstore Was ist Hibernate? Wie funktioniert Hibernate? Was ist Spring? Architektur
MehrEnterprise JavaBeans Überblick
Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 2. Einführung Java EE 5 Plattform 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 6.
MehrPersistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)
Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)
MehrObjektorientierte Datenbanken
OODB 11 Slide 1 Objektorientierte Datenbanken Vorlesung 11 Sebastian Iwanowski FH Wedel OODB 11 Slide 2 Wesentliche Eigenschaften von Hibernate Transparente Persistenz Transitive Persistenz (Persistenz
MehrJava Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1
Java Database Connectivity (JDBC) 14.07.2009 Walther Rathenau Gewerbeschule 1 Was ist JDBC? Hauptsächlich eine Sammlung von Java Klassen und Schnittstellen für eine einfache Verbindung von Java Programmen
MehrDatenmanagement in Android-Apps. 16. Mai 2013
Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer
MehrRelationales Datenbankpraktikum
Relationales Datenbankpraktikum Dr. A. Groß, M.Junghanns, V. Christen, Z. Sehili Aufgabe 3 Agenda Überblick zur Aufgabenstellung Hibernate Verwendung des Hibernate- Mapping und HQL innerhalb einer Konsolenapplikation
MehrUniversität Stuttgart Abteilung Anwendersoftware 01.07.2002. - Steht für Embedded SQL in Java. - Java-Methoden als SQL Stored-Procedures
SQLJ Basics Universität Stuttgart Abteilung Anwendersoftware 01.07.2002 Was ist SQLJ? SQLJ Part 0: - Steht für Embedded SQL in Java SQLJ Part 1: - Java-Methoden als SQL Stored-Procedures SQLJ Part 2: -
MehrJava-Persistenz-Architekturen. Freiberuflicher Entwickler und Autor. DOAG Konferenz 1.12.
Java-Persistenz-Architekturen Rudolf Jansen Freiberuflicher Entwickler und Autor http://www.rudolf-jansen.de info@rudolf-jansen.de DOAG Konferenz 1.12.2008 Inhalt JDBC JPA (Java Persistence API) Spring
MehrJava-Persistence-API mit Hibernate
Bernd Müller, Harald Wehr Java-Persistence-API mit Hibernate Standardisierte Persistenz f Г- Щ.4 1 fl/j J ; Щ Ш Ш ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England
MehrEclipse und EclipseLink
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
MehrGrundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn
Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn Grundlagen von Datenbanken - SS 2010 - Prof. Dr. Stefan Böttcher
MehrO/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010
O/R Mapper O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 Agenda Object-relational impedance mismatch Mapping Session Abfragen No. 2 Object-relational impedance mismatch Object-relational
MehrNachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)
Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der
MehrÜbungen zum Workshop Objektrelationales Mapping mit JPA 2.0
Übungen zum Workshop Objektrelationales Mapping mit JPA 2.0 Alle Unterlagen und Übungen sind in folgenden Google Code Project abgelegt und frei zugänglich: https://code.google.com/p/jpaworkshop/ Aktualisierung
MehrJPA mit Hibernate Java Persistence API in der Praxis
Daniel Röder JPA mit Hibernate Java Persistence API in der Praxis V Vorwort 15 V.l Aufbau des Buches < 15. V.2 Webseite zum Buch 16 i V.3 Danksagung 16 1 Einleitung 17 1.1 Impedance Mismatch 17 1.1.1 Granulär
MehrSQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar
Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-
MehrArchitektur des agimatec-validation Frameworks
Development : Implementierung Validierungskonzept (Dokumentation) This page last changed on Apr 03, 2008 by roman.stumm. Architektur des agimatec-validation Frameworks Generierung der Metainformationen
MehrHibernate Search. Unterstützung laufender Java Projekte. Perfect Match Rent-a-team Coaching on the project Inhouse Outsourcing
Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Software Factory ) ) Object Rangers ) ) Competence Center) Schlüsselfertige
MehrSoftwareentwicklung mit Enterprise JAVA Beans
Softwareentwicklung mit Enterprise JAVA Beans JPA - JAVA Persistence API Problem In JAVA-programmen arbeitet man mit Hauptspeicherobjekten. Nach Beendigung des Programmes sind diese nicht mehr vorhanden.
MehrDatenbank und Informationssysteme
Datenbank und Informationssysteme Inhaltsverzeichnis 1 Programmierung von Datenbankzugriffen 3 1.1 Architektur des SQL/CLI am Beispiel JDBC................... 4 1.2 Anfragen und Ergebnismengen in JDBC......................
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrMIN oder MAX Bildung per B*Tree Index Hint
E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de MIN oder MAX Bildung per B*Tree Index Hint Zugegeben, der Trick Min- oder Maximalwerte per Index Hint zu ermitteln ist nicht neu. Gewöhnlich
MehrORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel
ORM & OLAP Object-oriented Enterprise Application Programming Model for In-Memory Databases Sebastian Oergel Probleme 2 Datenbanken sind elementar für Business-Anwendungen Gängiges Datenbankparadigma:
MehrSQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software
SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4
MehrChristian Kühl. Von JDO zu JPA Entwicklung einer Migrationsstrategie
Christian Kühl Von JDO zu JPA Entwicklung einer Migrationsstrategie Inhalt JDO und JPA Motivation Was muss migriert werden? Strategien Architektur Beispiel Migration am Beispiel Automatisierung Probleme
Mehrseit Java 1.1 Bestandteil der API: packages java.sql, javax.sql
JDBC inoffizielle Abkürzung für: Java Database Connectivity seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql ist eine Menge von Klassen und Methoden, um aus Java-Programmen relationale Datenbanken
MehrBibliografische Informationen digitalisiert durch http://d-nb.info/995021198
Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT INTO) 95 5 Daten abfragen (SELECT) 99 6 Daten aus mehreren Tabellen abfragen (JOIN) 143 7 Unterabfragen
MehrBeispiel: DB-Mock (1/7)
Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
MehrFWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen
FWP Aktuelle Technologien zur Entwicklung verteilter Java- Anwendungen Sommersemester 2014 Michael Theis, Lehrbeauftragter Manager Persistence Context persist flush find Datastore merge flush remove flush
MehrSoftware Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
MehrPostgreSQL und memcached
Building a Query Cache imos GmbH 11.11.2011 / PGconf.DE Outline Einführung 1 Einführung 2 3 Szenario Einführung Webapplikation Pro Request viele, größtenteils einfache, Queries Einteilung von Caches Tradeoff
MehrWhitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz
combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt
MehrIch liebe Java && Ich liebe C# Rolf Borst
Ich liebe Java && Ich liebe C# Rolf Borst Java oder C#? Einführung public class Einfuehrung { private int gesamtzahl = 0; /* Ermittelt die Anzahl der geraden und durch drei teilbaren Zahlen */ public String
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrFolgendes PL/SQL Codefragment zeigt das grundlegende Statement für diesen Test: Java. http://www.trivadis.com/images/javaperf_tcm16-7133.
Page 1 of 7 Betrifft: Java oder PL/SQL? Art der Info: Technische Background Info Autor: Guido Schmutz (guido.schmutz@trivadis.com) Quelle: Aus unserer Schulungs- und Beratungstätigkeit Mit Oracle8.1 besteht
MehrIV. Datenbankmanagement
Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.
MehrViews in SQL. 2 Anlegen und Verwenden von Views 2
Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig
MehrÜbungsaufgaben zur Klausurvorbereitung Datenbanken 2, SoSe 2016
Die nachfolgenden Aufgaben sind nach Kategorien geordnet und stellen eine Auswahl von Aufgaben aus alten Klausuren des bisherigen Bachelor-WP-Fachs Datenbank Anwendungsentwicklung dar. Kategorie 1: OR-Mapping
MehrSession Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de
s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful
MehrEJB 3 - Ein Blick über den Tellerrand. Heiko W. Rupp <hwr@pilhuhn.de>
EJB 3 Ein Blick über den Tellerrand Heiko W. Rupp Agenda Abriss des Standards Blick auf vorhandene Implementierungen Erfahrungen aus der Praxis Verlosung der 2 Bücher Agenda Abriss des
MehrDipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009
Hochschule Darmstadt DATENBANKEN Fachbereich Informatik Praktikum 3 Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 PL/SQL Programmierung Anwendung des Cursor Konzepts und Stored Procedures Und Trigger
MehrSQL. Fortgeschrittene Konzepte Auszug
SQL Fortgeschrittene Konzepte Auszug Levels SQL92 Unterteilung in 3 Levels Entry Level (i.w. SQL89) wird von nahezu allen DBS Herstellern unterstützt Intermediate Level Full Level SQL DML 2-2 SQL92 behebt
MehrDBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt
DBS ::: SERIE 5 Die Relation produkt enthält Hersteller, Modellnummer und Produktgattung (pc, laptop oder drucker aller Produkte. Die Modellnummer ist (der Einfachheit halber eindeutig für alle Hersteller
MehrApplication Frameworks
Seminar Software Engineering 1 Grundlagen Agenda Spring Framework Dependency Injection Aspektorientierte Programmierung Datenbankanbindung Modell View Controller Sicherheit Spring vs. Java EE Zusammenfassung
MehrModul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007. Name: Note:
1 Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007 Name: Note: Nr. Aufgaben Max. Punkte Erreichte Punkte 1 Grundlagen ~ 10% Vgl. Hinweis unten 2 Integrität, Procedures, Triggers, Sichten ~ 20%
MehrÜbung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT
Übung 7 DBMS-FUNKTIONALITÄTEN UND DATENIMPORT 1 Metadaten a) Wozu werden Metadaten im Umfeld von DBMS benötigt? b) Nennen Sie mindestens zwei weitere Anwendungsfelder, in denen Metadaten zum Einsatz kommen.
MehrSQL structured query language
Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query
MehrDynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München
Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester
MehrNHibernate vs. Entity Framework
Manfred Steyer CAMPUS 02 softwarearchitekt.at NHibernate vs. Entity Framework Ziele NHibernate und Entity Framework sowie deren Unterschiede kennen lernen 1 Agenda Kriterien Beispiel mit EF Beispiel mit
MehrSQL: statische Integrität
SQL: statische Integrität.1 SQL: statische Integrität Im allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen erfüllen. Integritätsbedingungen
Mehr4. Objektrelationales Mapping Grundlagen der Programmierung II (Java)
4. Objektrelationales Mapping Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
MehrWorkshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ
IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler
MehrWPF Steuerelemente Listbox, ComboBox, ListView,
WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,
MehrFolgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version 7.4.4. - Optional einen DHCP Server.
1. Dynamic Host Configuration Protocol 1.1 Einleitung Im Folgenden wird die Konfiguration von DHCP beschrieben. Sie setzen den Bintec Router entweder als DHCP Server, DHCP Client oder als DHCP Relay Agent
MehrISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de
08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren
MehrAufgaben zu XPath und XQuery
Aufgaben zu XPath und XQuery Dr. Arno Schmidhauser Letzte Revision: März 2005 Email: arno.schmidhauser@sws.bfh.ch Webseite: http://www.sws.bfh.ch/db Inhalt 1 XPath... 2 2 XQuery... 2 3 XPath/SQL Umsetzung...
MehrSQL und MySQL. Kristian Köhntopp
SQL und MySQL Kristian Köhntopp Wieso SQL? Datenbanken seit den frühen 1950er Jahren: Hierarchische Datenbanken Netzwerkdatenbanken Relationale Datenbanken = SQL Relational? 10 9 8 7 6 f(y) := y = x r(y)
MehrKlausur Interoperabilität
Klausur 21. Juni 2012 9.30 11.00 Uhr Workflow Systems and Technology Group Fakultät für Informatik Universität Wien Univ.-Prof. Dr. Stefanie Rinderle-Ma Allgemeine Hinweise: Die Bearbeitungszeit beträgt
MehrNathan Burgener. Design by Contract. Modul SWE
NathanBurgener DesignbyContract ModulSWE NathanBurgener Inhaltsverzeichnis 1 WasistDesignbyContract...3 1.1 Überblick...3 1.2 DesignbyContractmitMethoden...4 1.3 DesignbyContractmitKlassen...5 1.4 Vererbung...6
MehrAssoziation und Aggregation
Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben
MehrHochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.
Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.
MehrKein blasses Schema? NoSQL und Big Data mit Hibernate OGM
Kein blasses Schema? NoSQL und Big Data mit Hibernate OGM Thomas Much thomas@muchsoft.com www.muchsoft.com 1 NoSQL und Big Data Herzlich Willkommen in der NoSQL-Welt OnlySQL Not 2 NoSQL und Big Data NoSQL
MehrProzedurale Datenbank- Anwendungsprogrammierung
Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.
MehrKapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023
Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten
MehrDATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER
DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.
MehrKapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1
Kapitel 10 JDBC und SQLJ 1 JDBC und SQLJ Bisher: Einbettung von SQL (statisch bzw. dynamisch) in C, C++, COBOL, ADA (embedded SQL) bzw. prozedurale Erweiterungen für SQL in Oracle (PL/SQL) Was ist mit
MehrEndTermTest PROGALGO WS1516 A
EndTermTest PROGALGO WS1516 A 14.1.2016 Name:................. UID:.................. PC-Nr:................ Beachten Sie: Lesen Sie erst die Angaben aufmerksam, genau und vollständig. Die Verwendung von
MehrDatenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin
Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,
MehrBean-Mapping mit MapStruct
Machst Du noch Reflection oder annotierst Du schon? Bean-Mapping mit MapStruct Thomas Much thomas@muchsoft.com www.muchsoft.com 1 20 Jahre Java, 18 Jahre Beans JavaBeans JAXBEntities 2015 2006 2005 2000
MehrAllgemeines zu Datenbanken
Allgemeines zu Datenbanken Was ist eine Datenbank? Datensatz Zusammenfassung von Datenelementen mit fester Struktur Z.B.: Kunde Alois Müller, Hegenheimerstr. 28, Basel Datenbank Sammlung von strukturierten,
MehrOliver Paulus, oliver@code-project.org. 7. Februar 2006. Spring Framework Einführung. Oliver Paulus, oliver@codeproject.org. Was ist Spring?
oliver@code-project.org 7. Februar 2006 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2 3 4 5 6 7 8 9 Inhalt 1 2
MehrProgrammieren II. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011
Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 Objekt-relationales Mapping 2 Objekt-relationales Mapping Mit JDBC kann Java sich mit relationalen Datenbanken verbinden. Objekt-relationales
MehrRich Domain Model mit JPA 2.0
Rich Domain Model mit JPA 2.0 Adrian Hummel Consultant adrian.hummel@trivadis.com Mischa Kölliker Principal Consultant mischa.koelliker@trivadis.com Java Forum Stuttgart, 1. Juli 2010 Basel Baden Bern
MehrUnsere Webapplikation erweitern
Unsere Webapplikation erweitern Um die Webapplikation zu benutzen: 1. Starten Sie den Server, indem Sie das Hauptprogramm in der Klasse ImdbServer starten. 2. Laden Sie im Browser die Seite http://localhost:8080/html/index.html.
MehrWillkommen. Datenbanken und Anbindung
Willkommen Datenbanken und Anbindung Welche stehen zur Wahl? MySQL Sehr weit verbreitetes DBS (YT, FB, Twitter) Open-Source und Enterprise-Version Libs in C/C++ und Java verfügbar Grundsätzlich ist ein
MehrEclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007
Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit
MehrTag 4 Inhaltsverzeichnis
Tag 4 Inhaltsverzeichnis Normalformen Problem Formen (1-4) Weitere Formen Transaktionen Synchronisationsprobleme Überblick Autocommit Locking Savepoints Isolation levels Übungen RDB 4-1 Normalformen Problematik
Mehr