From 13943d1fbc79dfd54a2a11ae4bef48956a533397 Mon Sep 17 00:00:00 2001
From: Lukas Eder
- The org.jooq.impl.Factory
+ The org.jooq.impl.Factory
class is the main class from where you will create all jOOQ objects.
- The Factory implements org.jooq.Configuration
+ The Factory implements org.jooq.Configuration
and needs to be instanciated with the Configuration's properties:
-
The jOOQ User Manual : Advanced topics : Importing data from XML, CSV previous
+The jOOQ User Manual : Advanced topics : Importing data from XML, CSV previous
-
The jOOQ User Manual : Advanced topics : Master data generation previous : next
+The jOOQ User Manual : Advanced topics : Master data generation previous : next
-
The jOOQ User Manual : Advanced topics : Adding Oracle hints to queries previous : next
+The jOOQ User Manual : Advanced topics : Adding Oracle hints to queries previous : next
-
The jOOQ User Manual : DSL or fluent API : Aliased tables and fields previous : next
+The jOOQ User Manual : DSL or fluent API : Aliased tables and fields previous : next
-
The jOOQ User Manual : DSL or fluent API : Arithmetic operations previous : next
+The jOOQ User Manual : DSL or fluent API : Arithmetic operations previous : next
-
The jOOQ User Manual : DSL or fluent API : The CASE clause previous : next
+The jOOQ User Manual : DSL or fluent API : The CASE clause previous : next
-
The jOOQ User Manual : DSL or fluent API : Type casting previous : next
+The jOOQ User Manual : DSL or fluent API : Type casting previous : next
-
The jOOQ User Manual : DSL or fluent API : Conditions previous : next
+The jOOQ User Manual : DSL or fluent API : Conditions previous : next
-
The jOOQ User Manual : DSL or fluent API : Other types of nested selects previous : next
+The jOOQ User Manual : DSL or fluent API : Other types of nested selects previous : next
-
The jOOQ User Manual : DSL or fluent API : Stored procedures and functions previous : next
+The jOOQ User Manual : DSL or fluent API : Stored procedures and functions previous : next
-
The jOOQ User Manual : DSL or fluent API : Complete SELECT syntax previous : next
+The jOOQ User Manual : DSL or fluent API : Complete SELECT syntax previous : next
-
The jOOQ User Manual : DSL or fluent API : When it's just much easier: Plain SQL previous : next
+The jOOQ User Manual : DSL or fluent API : When it's just much easier: Plain SQL previous : next
-
The jOOQ User Manual : DSL or fluent API : UNION and other set operations previous : next
+The jOOQ User Manual : DSL or fluent API : UNION and other set operations previous : next
-
The jOOQ User Manual : DSL or fluent API previous : next
+The jOOQ User Manual : DSL or fluent API previous : next
Table of contents
-
The jOOQ User Manual : jOOQ classes and their usage : The example database previous : next
+The jOOQ User Manual : jOOQ classes and their usage : The example database previous : next
Example CREATE TABLE statements
diff --git a/jOOQ-website/manual/JOOQ/Extend/index.php b/jOOQ-website/manual/JOOQ/Extend/index.php
index 320a6d350e..59d5268cc2 100644
--- a/jOOQ-website/manual/JOOQ/Extend/index.php
+++ b/jOOQ-website/manual/JOOQ/Extend/index.php
@@ -14,7 +14,7 @@ function printContent() {
?>
-
The jOOQ User Manual : jOOQ classes and their usage : The Factory class previous : next
+The jOOQ User Manual : jOOQ classes and their usage : The Factory class previous : next
The Factory and the jOOQ API
@@ -37,27 +37,27 @@ function printContent() {
@@ -86,7 +86,7 @@ MySQLFactory create = new MySQLFactory(connection);
The jOOQ Factory expects its underlying - java.sql.Connection + java.sql.Connection to be open and ready for - java.sql.PreparedStatement + java.sql.PreparedStatement creation. You are responsible yourself for the lifecycle dependency between Factory and Connection. This means:
@@ -116,7 +116,7 @@ MySQLFactory create = new MySQLFactory(connection);Please keep in mind that many jOOQ objects will reference your Factory for their whole lifecycle. This is especially interesting, when dealing - with Updatable Records, + with Updatable Records, that can perform CRUD operations on the Factory's underlying Connection.
diff --git a/jOOQ-website/manual/JOOQ/Query/index.php b/jOOQ-website/manual/JOOQ/Query/index.php index 06f6cf66f2..33a026b1b4 100644 --- a/jOOQ-website/manual/JOOQ/Query/index.php +++ b/jOOQ-website/manual/JOOQ/Query/index.php @@ -14,7 +14,7 @@ function printContent() { ?>| The jOOQ User Manual : jOOQ classes and their usage : Query and its subtypes | previous : next | +The jOOQ User Manual : jOOQ classes and their usage : Query and its subtypes | previous : next |
| The jOOQ User Manual : jOOQ classes and their usage : Results and Records | previous : next | +The jOOQ User Manual : jOOQ classes and their usage : Results and Records | previous : next |
| The jOOQ User Manual : jOOQ classes and their usage : Tables and Fields | previous : next | +The jOOQ User Manual : jOOQ classes and their usage : Tables and Fields | previous : next |
The formal definition of a org.jooq.Table starts with
+public interface Table<R extends Record> // [...]+
+ This means that every table is associated with a subtype of the + org.jooq.Record + class (see also + Results and Records + ). For anonymous or ad-hoc tables, + <R> will always bind to Record itself. +
++ Unlike in the + JPA CriteriaQuery API, + this generic type + <R> + is not given so much importance as far as + type-safety is concerned. + SQL itself is inherently type-unsafe. But then + again, you have + incredible flexibility of creating anonymous or ad-hoc + types and + reusing them from + NESTED SELECT statements + or from many other + use-cases. If + <R> would play a role as important + as in JPA, jOOQ + would suffer from + the same verbosity, or inflexibility + that JPA + CriteriaQueries may + have. +
+ +The formal definition of a Field starts with
+public interface Field<T> // [...]+
+ Fields are generically parameterised with a Java type + <T> + that reflects the closest match to the RDMBS's underlying datatype for that + field. For instance, if you have a VARCHAR2 type Field in Oracle, + <T> + would bind to + java.lang.String + for that Field in jOOQ. Oracle's NUMBER(7) would + let + <T> + bind to + java.lang.Integer, + etc. This generic type is useful for two purposes: +
+The Field itself is a very broad concept. Other tools, or databases + refer to it as expression or column. When you just want to
+ +SELECT 1 FROM DUAL+
+ Then 1 is considered a Field or more explicitly, a + org.jooq.impl.Constant, + which implements Field, and DUAL is considered a Table or more explicitly + org.jooq.impl.Dual, which implements Table +
++ More advanced uses become clear quickly, when you do things like +
+SELECT 1 + 1 FROM DUAL+
+ Where 1 + 1 itself is a Field or more explicitly, an + org.jooq.impl.Expression + joining two Constants together. +
++ See some details about how to create these queries in the + Query section of the manual +
+ ++ A specific type of field is the + org.jooq.TableField, + which represents a physical + Field in a physical Table. Both the + TableField and its referenced Table + know each other. The physical aspect + of their nature is represented in + jOOQ by + meta model code generation, + where every entity in your database + schema will be generated into a + corresponding Java class. +
++ TableFields join both <R> and <T> generic parameters into their specification: +
+public interface TableField<R extends Record, T> // [...]+
+ This can be used for additional type safety in the future, or by client code. +
+ - diff --git a/jOOQ-website/manual/JOOQ/UpdatableRecord/index.php b/jOOQ-website/manual/JOOQ/UpdatableRecord/index.php index 36548fb5b3..bd207b97fa 100644 --- a/jOOQ-website/manual/JOOQ/UpdatableRecord/index.php +++ b/jOOQ-website/manual/JOOQ/UpdatableRecord/index.php @@ -14,7 +14,7 @@ function printContent() { ?>| The jOOQ User Manual : jOOQ classes and their usage : Updatable Records | previous : next | +The jOOQ User Manual : jOOQ classes and their usage : Updatable Records | previous : next |
| The jOOQ User Manual : jOOQ classes and their usage | previous : next | +The jOOQ User Manual : jOOQ classes and their usage | previous : next |
This section is about the main jOOQ classes and the global architecture. Most of the time, however, you will be using the - DSL or fluent API + DSL or fluent API in order to create queries the way you're used to in SQL
diff --git a/jOOQ-website/manual/META/Configuration/index.php b/jOOQ-website/manual/META/Configuration/index.php index c93a92fdd8..85557f067c 100644 --- a/jOOQ-website/manual/META/Configuration/index.php +++ b/jOOQ-website/manual/META/Configuration/index.php @@ -14,7 +14,7 @@ function printContent() { ?>| The jOOQ User Manual : Meta model code generation : Configuration and setup | previous : next | +The jOOQ User Manual : Meta model code generation : Configuration and setup | previous : next |
| The jOOQ User Manual : Meta model code generation : Procedures and packages | previous : next | +The jOOQ User Manual : Meta model code generation : Procedures and packages | previous : next |
| The jOOQ User Manual : Meta model code generation : Schemata | previous : next | +The jOOQ User Manual : Meta model code generation : Schemata | previous : next |
| The jOOQ User Manual : Meta model code generation : Sequences | previous : next | +The jOOQ User Manual : Meta model code generation : Sequences | previous : next |
| The jOOQ User Manual : Meta model code generation | previous : next | +The jOOQ User Manual : Meta model code generation | previous : next |
| The jOOQ User Manual | next | +The jOOQ User Manual | next |
See these chapters for an overview of the jOOQ internal architecture @@ -47,7 +47,7 @@ function printContent() {
See these chapters to understand how you can use jOOQ as a source code @@ -58,7 +58,7 @@ function printContent() {
See these chapters to learn about how to use jOOQ in every day's work. The @@ -70,7 +70,7 @@ function printContent() {
Some advanced topics including not-everyday functionality
diff --git a/jOOQ-website/src/main/resources/html-pages.xsl b/jOOQ-website/src/main/resources/html-pages.xsl
index c24e8ea236..6d4fd97421 100644
--- a/jOOQ-website/src/main/resources/html-pages.xsl
+++ b/jOOQ-website/src/main/resources/html-pages.xsl
@@ -105,7 +105,7 @@ function printContent() {
The formal definition of a
public interface Table<R extends Record> // [...]+
+ This means that every table is associated with a subtype of the
+
+ Unlike in the
+ JPA CriteriaQuery API,
+ this generic type
+ <R>
+ is not given so much importance as far as
+ type-safety is concerned.
+ SQL itself is inherently type-unsafe. But then
+ again, you have
+ incredible flexibility of creating anonymous or ad-hoc
+ types and
+ reusing them from
+
The formal definition of a Field starts with
+public interface Field<T> // [...]+
+ Fields are generically parameterised with a Java type
+ <T>
+ that reflects the closest match to the RDMBS's underlying datatype for that
+ field. For instance, if you have a VARCHAR2 type Field in Oracle,
+ <T>
+ would bind to
+
The Field itself is a very broad concept. Other tools, or databases + refer to it as expression or column. When you just want to
+ +SELECT 1 FROM DUAL+
+ Then 1 is considered a Field or more explicitly, a
+
+ More advanced uses become clear quickly, when you do things like +
+SELECT 1 + 1 FROM DUAL+
+ Where 1 + 1 itself is a Field or more explicitly, an
+
+ See some details about how to create these queries in the
+
+ A specific type of field is the
+
+ TableFields join both <R> and <T> generic parameters into their specification: +
+public interface TableField<R extends Record, T> // [...]+
+ This can be used for additional type safety in the future, or by client code. +
+