<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://ddn.pluspedia.org/w/index.php?action=history&amp;feed=atom&amp;title=Java_Object_Oriented_Querying</id>
	<title>Java Object Oriented Querying - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://ddn.pluspedia.org/w/index.php?action=history&amp;feed=atom&amp;title=Java_Object_Oriented_Querying"/>
	<link rel="alternate" type="text/html" href="https://ddn.pluspedia.org/w/index.php?title=Java_Object_Oriented_Querying&amp;action=history"/>
	<updated>2026-04-04T13:26:07Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in PlusPedia</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://ddn.pluspedia.org/w/index.php?title=Java_Object_Oriented_Querying&amp;diff=130045&amp;oldid=prev</id>
		<title>188.104.210.176: Init</title>
		<link rel="alternate" type="text/html" href="https://ddn.pluspedia.org/w/index.php?title=Java_Object_Oriented_Querying&amp;diff=130045&amp;oldid=prev"/>
		<updated>2010-12-21T20:11:53Z</updated>

		<summary type="html">&lt;p&gt;Init&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{ Infobox Software&lt;br /&gt;
| name                          = jOOQ&lt;br /&gt;
| Hersteller                    = Lukas Eder&lt;br /&gt;
| AktuelleVersion               = 1.5.0&lt;br /&gt;
| AktuelleVersionFreigabeDatum  = 22. November 2010&lt;br /&gt;
| AktuelleVorabVersion          = &lt;br /&gt;
| AktuelleVorabVersionFreigabeDatum = &lt;br /&gt;
| Betriebssystem                = [[plattformübergreifend]]&lt;br /&gt;
| Programmiersprache            = [[Java (Programmiersprache)|Java]]&lt;br /&gt;
| Kategorie                     = [[Persistenz (Informatik)|Persistenz]]-[[Framework]]&lt;br /&gt;
| Lizenz                        = [[Apache License]] 2.0&lt;br /&gt;
| Website                       = http://jooq.sourceforge.net&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;jOOQ&amp;#039;&amp;#039;&amp;#039; bedeutet Java Object Oriented Querying. Es handelt sich um eine [[Objekt-relationale Abbildung|objekt-relationale]] Bibliothek in [[Java (Programmiersprache)|Java]]. jOOQ ist sowohl [[Relationales Datenmodell|relational]] wie auch [[Objektorientierte Programmierung|objektorientiert]] und bietet mit seiner [[Domain Specific Language]] Möglichkeiten, um [[Datenbankabfrage]]n aus generierten Klassen zu konstruieren.&lt;br /&gt;
&lt;br /&gt;
== Paradigma ==&lt;br /&gt;
&lt;br /&gt;
Die wichtigste Idee hinter &amp;#039;&amp;#039;&amp;#039;jOOQ&amp;#039;&amp;#039;&amp;#039; ist, dass [[SQL]] in jeder Datenbankintegration an erster Stelle stehen soll. Trotz der angebotenen [[Abstraktionsprinzip|Abstraktion]] von [[JDBC]] hat es nicht soviel Funktionalität und Komplexität wie [[Hibernate (Framework)|Hibernate]] oder [[Java Persistence API|JPA]] oder ähnliche [[OR Mapper|OR-mapping Produkte]]. jOOQ versteht sich als Kompromiss zwischen den beiden Welten. SQL hat viele Eigenschaften, welche in einem [[Objektorientierung|objektorienterten]] [[Programmierparadigma]] keinen Platz haben. Dies ist ein großer Nachteil des [[Objektrelationale Abbildung|objekt-relationalen Modells]].&lt;br /&gt;
&lt;br /&gt;
Mit &amp;#039;&amp;#039;&amp;#039;jOOQ&amp;#039;&amp;#039;&amp;#039; wird keine neue textuelle [[Abfragesprache]] eingeführt. Stattdessen kann gewöhnliches [[SQL]] mittels &amp;#039;&amp;#039;&amp;#039;jOOQ&amp;#039;&amp;#039;&amp;#039; Objekten und generiertem Code konstruiert werden. Dies verhindert [[Syntaxfehler]] und Probleme mit Datentypen. Des weiteren werden Variablen gebunden. Ohne die Limitierungen, welche durch OR-mapping entstehen würden, ist es auch möglich komplexe Abfragen mit Alias, Unions, verschachtelten Abfragen, komplexen Joins zu formulieren. Außerdem unterstützt &amp;#039;&amp;#039;&amp;#039;jOOQ&amp;#039;&amp;#039;&amp;#039; auch datenbankspezifische Eigenschaften, wie [[UDT]]s, enumerierte Typen, [[Stored Procedure]]s und native Funktionen.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&lt;br /&gt;
Eine verschachtelte Abfrage welche von einem Tabellenalias selektiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
  -- Alle Autoren, deren Bücher ausverkauft sind&lt;br /&gt;
  SELECT * &lt;br /&gt;
    FROM T_AUTHOR a&lt;br /&gt;
   WHERE EXISTS (SELECT 1&lt;br /&gt;
                   FROM T_BOOK&lt;br /&gt;
                  WHERE T_BOOK.STATUS = &amp;#039;SOLD OUT&amp;#039;&lt;br /&gt;
                    AND T_BOOK.AUTHOR_ID = a.ID);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Äquivalent in &amp;#039;&amp;#039;&amp;#039;jOOQ&amp;#039;&amp;#039;&amp;#039; DSL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
  // Erstellen eines Alias für die Autorentabelle&lt;br /&gt;
  Table&amp;lt;TAuthorRecord&amp;gt; a = T_AUTHOR.as(&amp;quot;a&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  // Den Tabellenalias im Select Statement verwenden&lt;br /&gt;
  create.selectFrom(a)&lt;br /&gt;
        .where(create.exists(create.select(create.constant(1))&lt;br /&gt;
                                   .from(T_BOOK)&lt;br /&gt;
                                   .where(TBook.STATUS.equal(TBookStatus.SOLD_OUT)&lt;br /&gt;
                                   .and(TBook.AUTHOR_ID.equal(a.getField(TAuthor.ID))))));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siehe auch [https://sourceforge.net/apps/trac/jooq/wiki/Examples jOOQ Beispiele (englisch)] für viele weitere Beispiele&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [http://sourceforge.net/apps/trac/jooq jOOQ Webseite]&lt;br /&gt;
* [[Hibernate (Framework)|Hibernate]]&lt;br /&gt;
* [[iBATIS]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Datenbankschnittstelle]]&lt;br /&gt;
[[Kategorie:Freie Software]]&lt;br /&gt;
[[Kategorie:Java-Bibliothek]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Andere Wikipedia Sprachen ==&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Java_Object_Oriented_Querying WPSprache{en}: Java Object Oriented Querying ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Init-Quelle ==&lt;br /&gt;
Entnommen aus der:&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Java_Object_Oriented_Querying Wikipedia] &lt;br /&gt;
* [http://de.wikipedia.org/wiki/Wikipedia:L%C3%B6schkandidaten/1._Dezember_2010#Java_Object_Oriented_Querying_.28gel.C3.B6scht.29 Löschdiskussion bei Wikipedia]&lt;br /&gt;
&lt;br /&gt;
Erster Autor: [http://de.wikipedia.org/wiki/Benutzer:Lukaseder Lukaseder] angelegt am 01.12.2010 um 22:08,&lt;br /&gt;
&amp;lt;br/&amp;gt; Alle Autoren: [http://de.wikipedia.org/wiki/Benutzer:Levin Levin], [http://de.wikipedia.org/wiki/Benutzer:Gary_Dee Gary Dee], [http://de.wikipedia.org/wiki/Benutzer:AHZ AHZ], [http://de.wikipedia.org/wiki/Benutzer:Lukaseder Lukaseder]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:PPA-Mars}}&lt;/div&gt;</summary>
		<author><name>188.104.210.176</name></author>
	</entry>
</feed>