Added some sections to the manual

This commit is contained in:
Lukas Eder 2011-09-18 14:09:50 +00:00
parent 9772af74f9
commit 7ef097bfa6
46 changed files with 807 additions and 30 deletions

View File

@ -120,7 +120,7 @@ a:hover {
}
#wrapper {
background: url("../img/bodytile.jpg") repeat scroll left top #FFFFFF;
background: url("../img/bg.jpg") repeat scroll left top #FFFFFF;
height: auto;
min-height: 101%;
}
@ -146,7 +146,6 @@ a:hover {
background: -webkit-gradient(linear, left, right, from(#f6cab9), to(#ffeedd));
background: -moz-linear-gradient(left, #f6cab9, #ffeedd);
background: gradient(linear, left, right, from(#f6cab9), to(#ffeedd));
}
#navigation {

View File

@ -77,7 +77,6 @@
if ($slogan != '') {
print '<p class="slogan">' . $slogan . '</p>';
}
printContent();
?>

BIN
jOOQ-website/img/bg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/ADVANCED/">Advanced topics</a> : <a href="<?=$root?>/manual/ADVANCED/CONNECTBY/">The Oracle CONNECT BY clause for hierarchical queries</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/ADVANCED/OracleHints/" title="Previous section: Adding Oracle hints to queries">previous</a> : <a href="<?=$root?>/manual/ADVANCED/Export/" title="Next section: Exporting data to XML, CSV, JSON, HTML, Text">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/ADVANCED/">Advanced topics</a> : <a href="<?=$root?>/manual/ADVANCED/CONNECTBY/">The Oracle CONNECT BY clause for hierarchical queries</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/ADVANCED/OracleHints/" title="Previous section: Adding Oracle hints to queries">previous</a> : <a href="<?=$root?>/manual/ADVANCED/Export/" title="Next section: Exporting data to XML, CSV, JSON, HTML, Text">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/ADVANCED/">Advanced topics</a> : <a href="<?=$root?>/manual/ADVANCED/Export/">Exporting data to XML, CSV, JSON, HTML, Text</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/ADVANCED/CONNECTBY/" title="Previous section: The Oracle CONNECT BY clause for hierarchical queries">previous</a> : <a href="<?=$root?>/manual/ADVANCED/Import/" title="Next section: Importing data from XML, CSV">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/ADVANCED/">Advanced topics</a> : <a href="<?=$root?>/manual/ADVANCED/Export/">Exporting data to XML, CSV, JSON, HTML, Text</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/ADVANCED/CONNECTBY/" title="Previous section: The Oracle CONNECT BY clause for hierarchical queries">previous</a> : <a href="<?=$root?>/manual/ADVANCED/Import/" title="Next section: Importing data from XML, CSV">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/ADVANCED/">Advanced topics</a> : <a href="<?=$root?>/manual/ADVANCED/Import/">Importing data from XML, CSV</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/ADVANCED/Export/" title="Previous section: Exporting data to XML, CSV, JSON, HTML, Text">previous</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/ADVANCED/">Advanced topics</a> : <a href="<?=$root?>/manual/ADVANCED/Import/">Importing data from XML, CSV</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/ADVANCED/Export/" title="Previous section: Exporting data to XML, CSV, JSON, HTML, Text">previous</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/ADVANCED/">Advanced topics</a> : <a href="<?=$root?>/manual/ADVANCED/MasterData/">Master data generation</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/ADVANCED/" title="Previous section: Advanced topics">previous</a> : <a href="<?=$root?>/manual/ADVANCED/SchemaMapping/" title="Next section: Mapping generated schemata and tables to productive environments">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/ADVANCED/">Advanced topics</a> : <a href="<?=$root?>/manual/ADVANCED/MasterData/">Master data generation</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/ADVANCED/" title="Previous section: Advanced topics">previous</a> : <a href="<?=$root?>/manual/ADVANCED/SchemaMapping/" title="Next section: Mapping generated schemata and tables to productive environments">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/ADVANCED/">Advanced topics</a> : <a href="<?=$root?>/manual/ADVANCED/OracleHints/">Adding Oracle hints to queries</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/ADVANCED/SchemaMapping/" title="Previous section: Mapping generated schemata and tables to productive environments">previous</a> : <a href="<?=$root?>/manual/ADVANCED/CONNECTBY/" title="Next section: The Oracle CONNECT BY clause for hierarchical queries">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/ADVANCED/">Advanced topics</a> : <a href="<?=$root?>/manual/ADVANCED/OracleHints/">Adding Oracle hints to queries</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/ADVANCED/SchemaMapping/" title="Previous section: Mapping generated schemata and tables to productive environments">previous</a> : <a href="<?=$root?>/manual/ADVANCED/CONNECTBY/" title="Next section: The Oracle CONNECT BY clause for hierarchical queries">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/ADVANCED/">Advanced topics</a> : <a href="<?=$root?>/manual/ADVANCED/SchemaMapping/">Mapping generated schemata and tables to productive environments</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/ADVANCED/MasterData/" title="Previous section: Master data generation">previous</a> : <a href="<?=$root?>/manual/ADVANCED/OracleHints/" title="Next section: Adding Oracle hints to queries">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/ADVANCED/">Advanced topics</a> : <a href="<?=$root?>/manual/ADVANCED/SchemaMapping/">Mapping generated schemata and tables to productive environments</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/ADVANCED/MasterData/" title="Previous section: Master data generation">previous</a> : <a href="<?=$root?>/manual/ADVANCED/OracleHints/" title="Next section: Adding Oracle hints to queries">next</a></td>
</tr>
</table>
<?php
}

View File

@ -35,7 +35,11 @@ function printContent() {
<li>
<a href="<?=$root?>/manual/ADVANCED/Import/" title="Importing data from XML, CSV">Importing data from XML, CSV</a>
</li>
</ol>
</ol><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/ADVANCED/">Advanced topics</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/SQL/" title="Previous section: When it's just much easier: Plain SQL">previous</a> : <a href="<?=$root?>/manual/ADVANCED/MasterData/" title="Next section: Master data generation">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/ALIAS/">Aliased tables and fields</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/CONDITION/" title="Previous section: Conditions">previous</a> : <a href="<?=$root?>/manual/DSL/IN/" title="Next section: Nested select statements using the IN operator">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/ALIAS/">Aliased tables and fields</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/CONDITION/" title="Previous section: Conditions">previous</a> : <a href="<?=$root?>/manual/DSL/IN/" title="Next section: Nested select statements using the IN operator">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/ARITHMETIC/">Arithmetic operations</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/PROCEDURES/" title="Previous section: Stored procedures and functions">previous</a> : <a href="<?=$root?>/manual/DSL/CASE/" title="Next section: The CASE clause">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/ARITHMETIC/">Arithmetic operations</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/PROCEDURES/" title="Previous section: Stored procedures and functions">previous</a> : <a href="<?=$root?>/manual/DSL/CASE/" title="Next section: The CASE clause">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/CASE/">The CASE clause</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/ARITHMETIC/" title="Previous section: Arithmetic operations">previous</a> : <a href="<?=$root?>/manual/DSL/CAST/" title="Next section: Type casting">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/CASE/">The CASE clause</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/ARITHMETIC/" title="Previous section: Arithmetic operations">previous</a> : <a href="<?=$root?>/manual/DSL/CAST/" title="Next section: Type casting">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/CAST/">Type casting</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/CASE/" title="Previous section: The CASE clause">previous</a> : <a href="<?=$root?>/manual/DSL/SQL/" title="Next section: When it's just much easier: Plain SQL">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/CAST/">Type casting</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/CASE/" title="Previous section: The CASE clause">previous</a> : <a href="<?=$root?>/manual/DSL/SQL/" title="Next section: When it's just much easier: Plain SQL">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/CONDITION/">Conditions</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/SELECT/" title="Previous section: Complete SELECT syntax">previous</a> : <a href="<?=$root?>/manual/DSL/ALIAS/" title="Next section: Aliased tables and fields">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/CONDITION/">Conditions</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/SELECT/" title="Previous section: Complete SELECT syntax">previous</a> : <a href="<?=$root?>/manual/DSL/ALIAS/" title="Next section: Aliased tables and fields">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/EXISTS/">Nested select statements using the EXISTS operator</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/IN/" title="Previous section: Nested select statements using the IN operator">previous</a> : <a href="<?=$root?>/manual/DSL/NESTED/" title="Next section: Other types of nested selects">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/EXISTS/">Nested select statements using the EXISTS operator</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/IN/" title="Previous section: Nested select statements using the IN operator">previous</a> : <a href="<?=$root?>/manual/DSL/NESTED/" title="Next section: Other types of nested selects">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/FUNCTIONS/">Functions, aggregate operators, and window functions</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/UNION/" title="Previous section: UNION and other set operations">previous</a> : <a href="<?=$root?>/manual/DSL/PROCEDURES/" title="Next section: Stored procedures and functions">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/FUNCTIONS/">Functions, aggregate operators, and window functions</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/UNION/" title="Previous section: UNION and other set operations">previous</a> : <a href="<?=$root?>/manual/DSL/PROCEDURES/" title="Next section: Stored procedures and functions">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/IN/">Nested select statements using the IN operator</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/ALIAS/" title="Previous section: Aliased tables and fields">previous</a> : <a href="<?=$root?>/manual/DSL/EXISTS/" title="Next section: Nested select statements using the EXISTS operator">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/IN/">Nested select statements using the IN operator</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/ALIAS/" title="Previous section: Aliased tables and fields">previous</a> : <a href="<?=$root?>/manual/DSL/EXISTS/" title="Next section: Nested select statements using the EXISTS operator">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/NESTED/">Other types of nested selects</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/EXISTS/" title="Previous section: Nested select statements using the EXISTS operator">previous</a> : <a href="<?=$root?>/manual/DSL/UNION/" title="Next section: UNION and other set operations">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/NESTED/">Other types of nested selects</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/EXISTS/" title="Previous section: Nested select statements using the EXISTS operator">previous</a> : <a href="<?=$root?>/manual/DSL/UNION/" title="Next section: UNION and other set operations">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/PROCEDURES/">Stored procedures and functions</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/FUNCTIONS/" title="Previous section: Functions, aggregate operators, and window functions">previous</a> : <a href="<?=$root?>/manual/DSL/ARITHMETIC/" title="Next section: Arithmetic operations">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/PROCEDURES/">Stored procedures and functions</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/FUNCTIONS/" title="Previous section: Functions, aggregate operators, and window functions">previous</a> : <a href="<?=$root?>/manual/DSL/ARITHMETIC/" title="Next section: Arithmetic operations">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/SELECT/">Complete SELECT syntax</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/" title="Previous section: DSL or fluent API. Where SQL meets Java">previous</a> : <a href="<?=$root?>/manual/DSL/CONDITION/" title="Next section: Conditions">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/SELECT/">Complete SELECT syntax</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/" title="Previous section: DSL or fluent API. Where SQL meets Java">previous</a> : <a href="<?=$root?>/manual/DSL/CONDITION/" title="Next section: Conditions">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/SQL/">When it's just much easier: Plain SQL</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/CAST/" title="Previous section: Type casting">previous</a> : <a href="<?=$root?>/manual/ADVANCED/" title="Next section: Advanced topics">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/SQL/">When it's just much easier: Plain SQL</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/CAST/" title="Previous section: Type casting">previous</a> : <a href="<?=$root?>/manual/ADVANCED/" title="Next section: Advanced topics">next</a></td>
</tr>
</table>
<?php
}

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/UNION/">UNION and other set operations</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/NESTED/" title="Previous section: Other types of nested selects">previous</a> : <a href="<?=$root?>/manual/DSL/FUNCTIONS/" title="Next section: Functions, aggregate operators, and window functions">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a> : <a href="<?=$root?>/manual/DSL/UNION/">UNION and other set operations</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/DSL/NESTED/" title="Previous section: Other types of nested selects">previous</a> : <a href="<?=$root?>/manual/DSL/FUNCTIONS/" title="Next section: Functions, aggregate operators, and window functions">next</a></td>
</tr>
</table>
<?php
}

View File

@ -56,7 +56,11 @@ function printContent() {
<li>
<a href="<?=$root?>/manual/DSL/SQL/" title="When it's just much easier: Plain SQL">When it's just much easier: Plain SQL</a>
</li>
</ol>
</ol><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/DSL/">DSL or fluent API. Where SQL meets Java</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/META/SEQUENCE/" title="Previous section: Sequences">previous</a> : <a href="<?=$root?>/manual/DSL/SELECT/" title="Next section: Complete SELECT syntax">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -70,7 +70,12 @@ CREATE TABLE t_book_to_book_store (
More entities, types (e.g. UDT's, ARRAY types, ENUM types, etc),
stored procedures and packages are introduced for specific examples
</p>
<br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/JOOQ/">jOOQ classes and their usage</a> : <a href="<?=$root?>/manual/JOOQ/ExampleDatabase/">The example database</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/JOOQ/" title="Previous section: jOOQ classes and their usage">previous</a> : <a href="<?=$root?>/manual/JOOQ/Factory/" title="Next section: The Factory class">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -59,7 +59,12 @@ public void bind(BindContext context) throws SQLException;
<a href="<?=$root?>/manual/DSL/SQL/" title="jOOQ Manual reference: When it's just much easier: Plain SQL">Plain SQL</a> functionality,
where you can provide jOOQ with a simple String representation of your
embedded SQL. </p>
<br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/JOOQ/">jOOQ classes and their usage</a> : <a href="<?=$root?>/manual/JOOQ/Extend/">Extend jOOQ with custom types</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/JOOQ/Serializability/" title="Previous section: Serializability of QueryParts and Results">previous</a> : <a href="<?=$root?>/manual/META/" title="Next section: Meta model code generation">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -148,7 +148,12 @@ MySQLFactory create = new MySQLFactory(connection);
that can perform CRUD operations on the
Factory's underlying Connection.
</p>
<br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/JOOQ/">jOOQ classes and their usage</a> : <a href="<?=$root?>/manual/JOOQ/Factory/">The Factory class</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/JOOQ/ExampleDatabase/" title="Previous section: The example database">previous</a> : <a href="<?=$root?>/manual/JOOQ/Table/" title="Next section: Tables and Fields">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -496,7 +496,12 @@ create.mergeInto(T_AUTHOR)
</table>
<p>This is not supported by Ingres and SQLite. jOOQ will execute a DELETE FROM
T_AUTHOR statement instead. </p>
<br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/JOOQ/">jOOQ classes and their usage</a> : <a href="<?=$root?>/manual/JOOQ/Query/">The Query and its various subtypes</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/JOOQ/UpdatableRecord/" title="Previous section: Updatable Records">previous</a> : <a href="<?=$root?>/manual/JOOQ/ResultQuery/" title="Next section: ResultQuery and various ways of fetching data">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -18,6 +18,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/JOOQ/">jOOQ classes and their usage</a> : <a href="<?=$root?>/manual/JOOQ/QueryPart/">QueryParts and the global architecture</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/JOOQ/ResultQuery/" title="Previous section: ResultQuery and various ways of fetching data">previous</a> : <a href="<?=$root?>/manual/JOOQ/Serializability/" title="Next section: Serializability of QueryParts and Results">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/JOOQ/">jOOQ classes and their usage</a> : <a href="<?=$root?>/manual/JOOQ/QueryPart/">QueryParts and the global architecture</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/JOOQ/ResultQuery/" title="Previous section: ResultQuery and various ways of fetching data">previous</a> : <a href="<?=$root?>/manual/JOOQ/Serializability/" title="Next section: Serializability of QueryParts and Results">next</a></td>
</tr>
</table>
<?php
}

View File

@ -96,7 +96,12 @@ BigDecimal getValueAsBigDecimal(int fieldIndex);
// This method can perform arbitrary conversions
&lt;T&gt; T getValue(String fieldName, Class&lt;? extends T&gt; type);
&lt;T&gt; T getValue(int fieldIndex, Class&lt;? extends T&gt; type);</pre>
<br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/JOOQ/">jOOQ classes and their usage</a> : <a href="<?=$root?>/manual/JOOQ/Result/">Results and Records</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/JOOQ/Table/" title="Previous section: Tables and Fields">previous</a> : <a href="<?=$root?>/manual/JOOQ/UpdatableRecord/" title="Next section: Updatable Records">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -97,7 +97,12 @@ public interface ResultQuery&lt;R extends Record&gt; {
FutureResult&lt;R&gt; fetchLater();
FutureResult&lt;R&gt; fetchLater(ExecutorService executor);
}</pre>
<br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/JOOQ/">jOOQ classes and their usage</a> : <a href="<?=$root?>/manual/JOOQ/ResultQuery/">ResultQuery and various ways of fetching data</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/JOOQ/Query/" title="Previous section: The Query and its various subtypes">previous</a> : <a href="<?=$root?>/manual/JOOQ/QueryPart/" title="Next section: QueryParts and the global architecture">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -68,7 +68,12 @@ ConfigurationRegistry.setProvider(provider);</pre>
</li>
</ul>
<br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/JOOQ/">jOOQ classes and their usage</a> : <a href="<?=$root?>/manual/JOOQ/Serializability/">Serializability of QueryParts and Results</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/JOOQ/QueryPart/" title="Previous section: QueryParts and the global architecture">previous</a> : <a href="<?=$root?>/manual/JOOQ/Extend/" title="Next section: Extend jOOQ with custom types">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -143,7 +143,12 @@ function printContent() {
<p>
This can be used for additional type safety in the future, or by client code.
</p>
<br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/JOOQ/">jOOQ classes and their usage</a> : <a href="<?=$root?>/manual/JOOQ/Table/">Tables and Fields</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/JOOQ/Factory/" title="Previous section: The Factory class">previous</a> : <a href="<?=$root?>/manual/JOOQ/Result/" title="Next section: Results and Records">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -88,7 +88,12 @@ book.storeUsing(TBook.ID);
// Delete it
book.deleteUsing(TBook.ID);</pre>
<br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/JOOQ/">jOOQ classes and their usage</a> : <a href="<?=$root?>/manual/JOOQ/UpdatableRecord/">Updatable Records</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/JOOQ/Result/" title="Previous section: Results and Records">previous</a> : <a href="<?=$root?>/manual/JOOQ/Query/" title="Next section: The Query and its various subtypes">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -74,7 +74,11 @@ function printContent() {
<li>
<a href="<?=$root?>/manual/JOOQ/Extend/" title="Extend jOOQ with custom types">Extend jOOQ with custom types</a>
</li>
</ol>
</ol><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/JOOQ/">jOOQ classes and their usage</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/" title="Previous section: The jOOQ User Manual">previous</a> : <a href="<?=$root?>/manual/JOOQ/ExampleDatabase/" title="Next section: The example database">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -214,7 +214,12 @@ org.jooq.util.GenerationTool /jooq-config.properties</pre>
<p>Be sure, both jOOQ.jar and your generated package (see
configuration) are located on your classpath. Once this is done, you
can execute SQL statements with your generated classes.</p>
<br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/META/">Meta model code generation</a> : <a href="<?=$root?>/manual/META/Configuration/">Configuration and setup of the generator</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/META/" title="Previous section: Meta model code generation">previous</a> : <a href="<?=$root?>/manual/META/SCHEMA/" title="Next section: The schema, top-level generated artefact">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -199,7 +199,12 @@ assertEquals(BigDecimal.ONE, Procedures.pAuthorExists(configuration, "Paulo"));<
one for
standalone procedures/functions.
</p>
<br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/META/">Meta model code generation</a> : <a href="<?=$root?>/manual/META/PROCEDURE/">Procedures and packages</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/META/TABLE/" title="Previous section: Tables, views and their corresponding records">previous</a> : <a href="<?=$root?>/manual/META/UDT/" title="Next section: UDT's including ARRAY and ENUM types">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -51,7 +51,12 @@ function printContent() {
<pre class="prettyprint lang-java">
public final java.util.List&lt;org.jooq.Sequence&gt; getSequences();
public final java.util.List&lt;org.jooq.Table&lt;?&gt;&gt; getTables();</pre>
<br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/META/">Meta model code generation</a> : <a href="<?=$root?>/manual/META/SCHEMA/">The schema, top-level generated artefact</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/META/Configuration/" title="Previous section: Configuration and setup of the generator">previous</a> : <a href="<?=$root?>/manual/META/TABLE/" title="Next section: Tables, views and their corresponding records">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -16,6 +16,10 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/META/">Meta model code generation</a> : <a href="<?=$root?>/manual/META/SEQUENCE/">Sequences</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/META/UDT/" title="Previous section: UDT's including ARRAY and ENUM types">previous</a> : <a href="<?=$root?>/manual/DSL/" title="Next section: DSL or fluent API. Where SQL meets Java">next</a></td>
</tr>
</table><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/META/">Meta model code generation</a> : <a href="<?=$root?>/manual/META/SEQUENCE/">Sequences</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/META/UDT/" title="Previous section: UDT's including ARRAY and ENUM types">previous</a> : <a href="<?=$root?>/manual/DSL/" title="Next section: DSL or fluent API. Where SQL meets Java">next</a></td>
</tr>
</table>
<?php
}

View File

@ -81,7 +81,12 @@ public class TAuthorRecord extends UpdatableRecordImpl&lt;TAuthorRecord&gt; {
// Navigation methods for foreign keys
public List&lt;TBookRecord&gt; getTBooks() throws SQLException { // [...]
}</pre>
<br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/META/">Meta model code generation</a> : <a href="<?=$root?>/manual/META/TABLE/">Tables, views and their corresponding records</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/META/SCHEMA/" title="Previous section: The schema, top-level generated artefact">previous</a> : <a href="<?=$root?>/manual/META/PROCEDURE/" title="Next section: Procedures and packages">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -7,7 +7,11 @@ function printH1() {
print "UDT's including ARRAY and ENUM types";
}
function getSlogan() {
return "";
return "
Databases become more powerful when you can structure your data in user
defined types. It's time for Java developers to give some credit to
that.
";
}
function printContent() {
global $root;
@ -16,6 +20,317 @@ function printContent() {
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/META/">Meta model code generation</a> : <a href="<?=$root?>/manual/META/UDT/">UDT's including ARRAY and ENUM types</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/META/PROCEDURE/" title="Previous section: Procedures and packages">previous</a> : <a href="<?=$root?>/manual/META/SEQUENCE/" title="Next section: Sequences">next</a></td>
</tr>
</table>
<h2>Increased RDBMS support for UDT's</h2>
<p>
In recent years, most RDBMS have started to implement some support for
advanced data types. This support has not been adopted very well by
database users in the Java world, for several reasons:
</p>
<ul>
<li>They are usually orthogonal to relational concepts. It is not easy
to modify a UDT once it is referenced by a table column.</li>
<li>There is little standard support of accessing them from JDBC (and
probably other database connectivity standards). </li>
</ul>
<p>
On the other hand, especially with stored procedures, these data types
are likely to become more and more useful in the future. If you have a
look at Postgres' capabilities of dealing with advanced data types
(<a href="http://www.postgresql.org/docs/9.0/interactive/datatype-enum.html">ENUMs</a>,
<a href="http://www.postgresql.org/docs/9.0/interactive/arrays.html">ARRAYs</a>,
<a href="http://www.postgresql.org/docs/9.0/interactive/rowtypes.html">UDT's</a>),
this becomes more and more obvious.
</p>
<p>It is a central strategy for jOOQ, to standardise access to these
kinds of types (as well as to
<a href="<?=$root?>/manual/META/PROCEDURE/" title="jOOQ Manual reference: Procedures and packages">stored procedures</a>, of course) across all
RDBMS, where these types are supported. </p>
<h2>UDT types</h2>
<p>User Defined Types (UDT) are helpful in major RDMBS with lots
of proprietary functionality. The biggest player is clearly Oracle.
Currently, jOOQ provides UDT support for only two databases: </p>
<ul>
<li>Oracle</li>
<li>Postgres</li>
</ul>
<p>Apart from that, </p>
<ul>
<li>
DB2 UDT's are not supported as they are very tough to
serialise/deserialise. We don't think that this is a big enough
requirement to put more effort in those, right now (see also the
developers' discussion on
<a href="https://sourceforge.net/apps/trac/jooq/ticket/164" title="Trac ticket: #164">#164</a>)
</li>
</ul>
<p>In Oracle, you would define UDTs like this: </p>
<pre class="prettyprint lang-sql">
CREATE TYPE u_street_type AS OBJECT (
street VARCHAR2(100),
no VARCHAR2(30)
)
CREATE TYPE u_address_type AS OBJECT (
street u_street_type,
zip VARCHAR2(50),
city VARCHAR2(50),
country VARCHAR2(50),
since DATE,
code NUMBER(7)
)</pre>
<p>These types could then be used in tables and/or stored procedures like such: </p>
<pre class="prettyprint lang-sql">
CREATE TABLE t_author (
id NUMBER(7) NOT NULL PRIMARY KEY,
-- [...]
address u_address_type
)
CREATE OR REPLACE PROCEDURE p_check_address (address IN OUT u_address_type);</pre>
<p>
Standard JDBC UDT support encourages JDBC-driver developers to implement
interfaces such as
<a href="http://download.oracle.com/javase/6/docs/api/java/sql/SQLData.html" title="External API reference: java.sql.SQLData">java.sql.SQLData</a>,
<a href="http://download.oracle.com/javase/6/docs/api/java/sql/SQLInput.html" title="External API reference: java.sql.SQLInput">java.sql.SQLInput</a> and
<a href="http://download.oracle.com/javase/6/docs/api/java/sql/SQLOutput.html" title="External API reference: java.sql.SQLOutput">java.sql.SQLOutput</a>.
Those interfaces are non-trivial to implement, or
to hook into. Also access to
<a href="http://download.oracle.com/javase/6/docs/api/java/sql/Struct.html" title="External API reference: java.sql.Struct">java.sql.Struct</a>
is not really simple. Due
to the lack of a well-defined JDBC standard, Oracle's JDBC driver
rolls their own proprietary methods of dealing with these types. jOOQ
goes a different way, it hides those facts from you entirely. With
jOOQ, the above UDT's will be generated in simple
<a href="https://github.com/lukaseder/jOOQ/blob/master/jOOQ/src/main/java/org/jooq/UDT.java" title="Internal API reference: org.jooq.UDT">UDT meta-model classes</a> and
<a href="https://github.com/lukaseder/jOOQ/blob/master/jOOQ/src/main/java/org/jooq/UDTRecord.java" title="Internal API reference: org.jooq.UDTRecord">UDT record classes</a> as such:
</p>
<pre class="prettyprint lang-java">
// There is an analogy between UDT/Table and UDTRecord/TableRecord...
public class UAddressType extends UDTImpl&lt;UAddressTypeRecord&gt; {
// The UDT meta-model singleton instance
public static final UAddressType U_ADDRESS_TYPE = new UAddressType();
// UDT attributes are modeled as static members. Nested UDT's
// behave similarly
public static final UDTField&lt;UAddressTypeRecord, UStreetTypeRecord&gt; STREET = // [...]
public static final UDTField&lt;UAddressTypeRecord, String&gt; ZIP = // [...]
public static final UDTField&lt;UAddressTypeRecord, String&gt; CITY = // [...]
public static final UDTField&lt;UAddressTypeRecord, String&gt; COUNTRY = // [...]
public static final UDTField&lt;UAddressTypeRecord, Date&gt; SINCE = // [...]
public static final UDTField&lt;UAddressTypeRecord, Integer&gt; CODE = // [...]
}</pre>
<p>Now, when you interact with entities or procedures that hold UDT's, that's very simple as well. Here is an example: </p>
<pre class="prettyprint lang-java">
// Fetch any author from the T_AUTHOR table
TAuthorRecord author = create.selectFrom(T_AUTHOR).fetchAny();
// Print out the author's address's house number
System.out.println(author.getAddress().getStreet().getNo());</pre>
<p>A similar thing can be achieved when interacting with the example stored procedure: </p>
<pre class="prettyprint lang-java">
// Create a new UDTRecord of type U_ADDRESS_TYPE
UAddressTypeRecord address = new UAddressTypeRecord();
address.setCountry("Switzerland");
// Call the stored procedure with IN OUT parameter of type U_ADDRESS_TYPE
address = Procedures.pCheckAddress(connection, address);</pre>
<h2>ARRAY types</h2>
<p>
The notion of ARRAY types in RDBMS is not standardised at all. Very
modern databases (especially the Java-based ones) have implemented
ARRAY types exactly as what they are. "ARRAYs of something". In other
words, an ARRAY OF VARCHAR would be something very similar to Java's
notion of String[]. An ARRAY OF ARRAY OF VARCHAR would then be a
String[][] in Java. Some RDMBS, however, enforce stronger typing and
need the explicit creation of types for every ARRAY as well. These are
example String[] ARRAY types in various SQL dialects supported by jOOQ
1.5.4:
</p>
<ul>
<li>Oracle: VARRAY OF VARCHAR2. A strongly typed object encapsulating an ARRAY of a given type. See the <a href="http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/collection_definition.htm">documentation.</a>
</li>
<li>Postgres: text[]. Any data type can be turned into an array by suffixing it with []. See the <a href="http://www.postgresql.org/docs/9.0/interactive/arrays.html">documentation</a>
</li>
<li>HSQLDB: VARCHAR ARRAY. Any data type can be turned into an array by suffixing it with ARRAY. See the <a href="http://hsqldb.org/doc/2.0/guide/sqlgeneral-chapt.html#N1070F">documentation</a>
</li>
<li>H2: ARRAY. H2 does not know of typed arrays. All ARRAYs are mapped to Object[]. See the <a href="http://www.h2database.com/html/datatypes.html#array_type">documentation</a>
</li>
</ul>
<p>Soon to be supported: </p>
<ul>
<li>DB2: Knows a similar strongly-typed ARRAY type, like Oracle </li>
</ul>
<p>
From jOOQ's perspective, the ARRAY types fit in just like any other
type wherever the
&lt;T&gt; generic type parameter is existent. It integrates well with tables
and stored procedures.
</p>
<h3>Example: General ARRAY types</h3>
<p>An example usage of ARRAYs is given here for the Postgres dialect </p>
<pre class="prettyprint lang-sql">
CREATE TABLE t_arrays (
id integer not null primary key,
string_array VARCHAR(20)[],
number_array INTEGER[]
)
CREATE FUNCTION f_arrays(in_array IN text[]) RETURNS text[]</pre>
<p>When generating source code from the above entities, these artefacts will be created in Java: </p>
<pre class="prettyprint lang-java">
public class TArrays extends UpdatableTableImpl&lt;TArraysRecord&gt; {
// The generic type parameter &lt;T&gt; is bound to an array of a matching type
public static final TableField&lt;TArraysRecord, String[]&gt; STRING_ARRAY = // [...]
public static final TableField&lt;TArraysRecord, Integer[]&gt; NUMBER_ARRAY = // [...]
}
// The convenience class is enhanced with these methods
public final class Functions {
public static String[] fArrays(Connection connection, String[] inArray) throws SQLException { // [...]
public static Field&lt;String[]&gt; fArrays(String[] inArray) { // [...]
public static Field&lt;String[]&gt; fArrays(Field&lt;String[]&gt; inArray) { // [...]
}</pre>
<h3>Example: Oracle VARRAY types</h3>
<p>In Oracle, a VARRAY type is something slightly different than in
other RDMBS. It is a type that encapsules the actual ARRAY and creates
a new type from it. While all text[] types are equal and thus
compatible in Postgres, this does not apply for all VARRAY OF VARCHAR2
types. Hence, it is important to provide access to VARRAY types and
generated objects from those types as well. The example above would
read like this in Oracle: </p>
<pre class="prettyprint lang-sql">
CREATE TYPE u_string_array AS VARRAY(4) OF VARCHAR2(20)
CREATE TYPE u_number_array AS VARRAY(4) OF NUMBER(7)
CREATE TABLE t_arrays (
id NUMBER(7) not null primary key,
string_array u_string_array,
number_array u_number_array
)
CREATE OR REPLACE FUNCTION f_arrays (in_array u_string_array)
RETURN u_string_array</pre>
<p>Note that it becomes clear immediately, that a mapping from
U_STRING_ARRAY to String[] is obvious. But a mapping from String[] to
U_STRING_ARRAY is not. These are the generated
<a href="https://github.com/lukaseder/jOOQ/blob/master/jOOQ/src/main/java/org/jooq/ArrayRecord.java" title="Internal API reference: org.jooq.ArrayRecord">org.jooq.ArrayRecord</a> and other
artefacts in Oracle: </p>
<pre class="prettyprint lang-java">
public class UStringArrayRecord extends ArrayRecordImpl&lt;String&gt; { // [...]
public class UNumberArrayRecord extends ArrayRecordImpl&lt;Integer&gt; { // [...]
public class TArrays extends UpdatableTableImpl&lt;TArraysRecord&gt; {
public static final TableField&lt;TArraysRecord, UStringArrayRecord&gt; STRING_ARRAY = // [...]
public static final TableField&lt;TArraysRecord, UNumberArrayRecord&gt; NUMBER_ARRAY = // [...]
}
public final class Functions {
public static UStringArrayRecord fArrays3(Connection connection, UStringArrayRecord inArray) { // [...]
public static Field&lt;UStringArrayRecord&gt; fArrays3(UStringArrayRecord inArray) { // [...]
public static Field&lt;UStringArrayRecord&gt; fArrays3(Field&lt;UStringArrayRecord&gt; inArray) { // [...]
}</pre>
<h2>ENUM types</h2>
<p>True ENUM types are a rare species in the RDBMS world. Currently,
MySQL and Postgres are the only RDMBS supported by jOOQ, that provide
ENUM types. </p>
<ul>
<li>In MySQL, an ENUM type is declared directly upon a column. It cannot be reused as a type. See the <a href="http://dev.mysql.com/doc/refman/5.5/en/enum.html">documentation.</a>
</li>
<li>In Postgres, the ENUM type is declared independently and can be reused among tables, functions, etc. See the <a href="http://www.postgresql.org/docs/9.0/interactive/datatype-enum.html">documentation.</a>
</li>
<li>Other RDMBS know about "ENUM constraints", such as the Oracle CHECK constraint. These are not true ENUMS, however. jOOQ refrains from using their information for source code generation </li>
</ul>
<p>Some examples: </p>
<pre class="prettyprint lang-sql">
-- An example enum type
CREATE TYPE u_book_status AS ENUM ('SOLD OUT', 'ON STOCK', 'ORDERED')
-- An example useage of that enum type
CREATE TABLE t_book (
id INTEGER NOT NULL PRIMARY KEY,
-- [...]
status u_book_status
)</pre>
<p>The above Postgres ENUM type will be generated as </p>
<pre class="prettyprint lang-java">
public enum UBookStatus implements EnumType {
ORDERED("ORDERED"),
ON_STOCK("ON STOCK"),
SOLD_OUT("SOLD OUT");
// [...]
}</pre>
<p>Intuitively, the generated classes for the T_BOOK table in Postgres would look like this: </p>
<pre class="prettyprint lang-sql">
// The meta-model class
public class TBook extends UpdatableTableImpl&lt;TBookRecord&gt; {
// The TableField STATUS binds &lt;T&gt; to UBookStatus
public static final TableField&lt;TBookRecord, UBookStatus&gt; STATUS = // [...]
// [...]
}
// The record class
public class TBookRecord extends UpdatableRecordImpl&lt;TBookRecord&gt; {
// Corresponding to the Table meta-model, also setters and getters
// deal with the generated UBookStatus
public void setStatus(UBookStatus value) { // [...]
public UBookStatus getStatus() { // [...]
}</pre>
<p>Note that jOOQ allows you to simulate ENUM types where this makes
sense in your data model. See the section on
<a href="<?=$root?>/manual/ADVANCED/MasterData/" title="jOOQ Manual reference: Master data generation">master data</a> for more
details. </p>
<br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/META/">Meta model code generation</a> : <a href="<?=$root?>/manual/META/UDT/">UDT's including ARRAY and ENUM types</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/META/PROCEDURE/" title="Previous section: Procedures and packages">previous</a> : <a href="<?=$root?>/manual/META/SEQUENCE/" title="Next section: Sequences">next</a></td>
</tr>
</table>
<?php
}

View File

@ -58,7 +58,11 @@ function printContent() {
<li>
<a href="<?=$root?>/manual/META/SEQUENCE/" title="Sequences">Sequences</a>
</li>
</ol>
</ol><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a> : <a href="<?=$root?>/manual/META/">Meta model code generation</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/JOOQ/Extend/" title="Previous section: Extend jOOQ with custom types">previous</a> : <a href="<?=$root?>/manual/META/Configuration/" title="Next section: Configuration and setup of the generator">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -205,7 +205,11 @@ function printContent() {
</li>
</ol>
</li>
</ol>
</ol><br><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top"><a href="<?=$root?>/manual/">The jOOQ User Manual</a></td><td align="right" valign="top" style="white-space: nowrap"><a href="<?=$root?>/manual/JOOQ/" title="Next section: jOOQ classes and their usage">next</a></td>
</tr>
</table>
<?php
}
?>

View File

@ -44,6 +44,19 @@ function printContent() {
<!-- matching templates -->
<xsl:template match="//section[@id = $sectionID]" mode="content">
<xsl:apply-templates select="." mode="navigation"/>
<xsl:apply-templates select="content"/>
<xsl:if test="count(sections/section) &gt; 0">
<h3>Table of contents</h3>
</xsl:if>
<xsl:apply-templates select="." mode="toc"/>
<br/>
<xsl:apply-templates select="." mode="navigation"/>
</xsl:template>
<xsl:template match="section" mode="navigation">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td align="left" valign="top">
@ -54,14 +67,6 @@ function printContent() {
</td>
</tr>
</table>
<xsl:apply-templates select="content"/>
<xsl:if test="count(sections/section) &gt; 0">
<h3>Table of contents</h3>
</xsl:if>
<xsl:apply-templates select="." mode="toc"/>
</xsl:template>
<xsl:template match="section" mode="breadcrumb">

View File

@ -1680,7 +1680,297 @@ assertEquals(BigDecimal.ONE, Procedures.pAuthorExists(configuration, "Paulo"));<
<section id="UDT">
<title>UDT's including ARRAY and ENUM types</title>
<slogan>
Databases become more powerful when you can structure your data in user
defined types. It's time for Java developers to give some credit to
that.
</slogan>
<content>
<h2>Increased RDBMS support for UDT's</h2>
<p>
In recent years, most RDBMS have started to implement some support for
advanced data types. This support has not been adopted very well by
database users in the Java world, for several reasons:
</p>
<ul>
<li>They are usually orthogonal to relational concepts. It is not easy
to modify a UDT once it is referenced by a table column.</li>
<li>There is little standard support of accessing them from JDBC (and
probably other database connectivity standards). </li>
</ul>
<p>
On the other hand, especially with stored procedures, these data types
are likely to become more and more useful in the future. If you have a
look at Postgres' capabilities of dealing with advanced data types
(<a href="http://www.postgresql.org/docs/9.0/interactive/datatype-enum.html">ENUMs</a>,
<a href="http://www.postgresql.org/docs/9.0/interactive/arrays.html">ARRAYs</a>,
<a href="http://www.postgresql.org/docs/9.0/interactive/rowtypes.html">UDT's</a>),
this becomes more and more obvious.
</p>
<p>It is a central strategy for jOOQ, to standardise access to these
kinds of types (as well as to
<reference id="PROCEDURE" title="stored procedures"/>, of course) across all
RDBMS, where these types are supported. </p>
<h2>UDT types</h2>
<p>User Defined Types (UDT) are helpful in major RDMBS with lots
of proprietary functionality. The biggest player is clearly Oracle.
Currently, jOOQ provides UDT support for only two databases: </p>
<ul>
<li>Oracle</li>
<li>Postgres</li>
</ul>
<p>Apart from that, </p>
<ul>
<li>
DB2 UDT's are not supported as they are very tough to
serialise/deserialise. We don't think that this is a big enough
requirement to put more effort in those, right now (see also the
developers' discussion on
<reference ticket="164" />)
</li>
</ul>
<p>In Oracle, you would define UDTs like this: </p>
<pre class="prettyprint lang-sql">
CREATE TYPE u_street_type AS OBJECT (
street VARCHAR2(100),
no VARCHAR2(30)
)
CREATE TYPE u_address_type AS OBJECT (
street u_street_type,
zip VARCHAR2(50),
city VARCHAR2(50),
country VARCHAR2(50),
since DATE,
code NUMBER(7)
)</pre>
<p>These types could then be used in tables and/or stored procedures like such: </p>
<pre class="prettyprint lang-sql">
CREATE TABLE t_author (
id NUMBER(7) NOT NULL PRIMARY KEY,
-- [...]
address u_address_type
)
CREATE OR REPLACE PROCEDURE p_check_address (address IN OUT u_address_type);</pre>
<p>
Standard JDBC UDT support encourages JDBC-driver developers to implement
interfaces such as
<reference class="java.sql.SQLData"/>,
<reference class="java.sql.SQLInput"/> and
<reference class="java.sql.SQLOutput"/>.
Those interfaces are non-trivial to implement, or
to hook into. Also access to
<reference class="java.sql.Struct"/>
is not really simple. Due
to the lack of a well-defined JDBC standard, Oracle's JDBC driver
rolls their own proprietary methods of dealing with these types. jOOQ
goes a different way, it hides those facts from you entirely. With
jOOQ, the above UDT's will be generated in simple
<reference class="org.jooq.UDT" title="UDT meta-model classes"/> and
<reference class="org.jooq.UDTRecord" title="UDT record classes"/> as such:
</p>
<pre class="prettyprint lang-java">
// There is an analogy between UDT/Table and UDTRecord/TableRecord...
public class UAddressType extends UDTImpl&lt;UAddressTypeRecord&gt; {
// The UDT meta-model singleton instance
public static final UAddressType U_ADDRESS_TYPE = new UAddressType();
// UDT attributes are modeled as static members. Nested UDT's
// behave similarly
public static final UDTField&lt;UAddressTypeRecord, UStreetTypeRecord&gt; STREET = // [...]
public static final UDTField&lt;UAddressTypeRecord, String&gt; ZIP = // [...]
public static final UDTField&lt;UAddressTypeRecord, String&gt; CITY = // [...]
public static final UDTField&lt;UAddressTypeRecord, String&gt; COUNTRY = // [...]
public static final UDTField&lt;UAddressTypeRecord, Date&gt; SINCE = // [...]
public static final UDTField&lt;UAddressTypeRecord, Integer&gt; CODE = // [...]
}</pre>
<p>Now, when you interact with entities or procedures that hold UDT's, that's very simple as well. Here is an example: </p>
<pre class="prettyprint lang-java">
// Fetch any author from the T_AUTHOR table
TAuthorRecord author = create.selectFrom(T_AUTHOR).fetchAny();
// Print out the author's address's house number
System.out.println(author.getAddress().getStreet().getNo());</pre>
<p>A similar thing can be achieved when interacting with the example stored procedure: </p>
<pre class="prettyprint lang-java">
// Create a new UDTRecord of type U_ADDRESS_TYPE
UAddressTypeRecord address = new UAddressTypeRecord();
address.setCountry("Switzerland");
// Call the stored procedure with IN OUT parameter of type U_ADDRESS_TYPE
address = Procedures.pCheckAddress(connection, address);</pre>
<h2>ARRAY types</h2>
<p>
The notion of ARRAY types in RDBMS is not standardised at all. Very
modern databases (especially the Java-based ones) have implemented
ARRAY types exactly as what they are. "ARRAYs of something". In other
words, an ARRAY OF VARCHAR would be something very similar to Java's
notion of String[]. An ARRAY OF ARRAY OF VARCHAR would then be a
String[][] in Java. Some RDMBS, however, enforce stronger typing and
need the explicit creation of types for every ARRAY as well. These are
example String[] ARRAY types in various SQL dialects supported by jOOQ
1.5.4:
</p>
<ul>
<li>Oracle: VARRAY OF VARCHAR2. A strongly typed object encapsulating an ARRAY of a given type. See the <a href="http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/collection_definition.htm">documentation.</a></li>
<li>Postgres: text[]. Any data type can be turned into an array by suffixing it with []. See the <a href="http://www.postgresql.org/docs/9.0/interactive/arrays.html">documentation</a></li>
<li>HSQLDB: VARCHAR ARRAY. Any data type can be turned into an array by suffixing it with ARRAY. See the <a href="http://hsqldb.org/doc/2.0/guide/sqlgeneral-chapt.html#N1070F">documentation</a></li>
<li>H2: ARRAY. H2 does not know of typed arrays. All ARRAYs are mapped to Object[]. See the <a href="http://www.h2database.com/html/datatypes.html#array_type">documentation</a></li>
</ul>
<p>Soon to be supported: </p>
<ul>
<li>DB2: Knows a similar strongly-typed ARRAY type, like Oracle </li>
</ul>
<p>
From jOOQ's perspective, the ARRAY types fit in just like any other
type wherever the
&lt;T&gt; generic type parameter is existent. It integrates well with tables
and stored procedures.
</p>
<h3>Example: General ARRAY types</h3>
<p>An example usage of ARRAYs is given here for the Postgres dialect </p>
<pre class="prettyprint lang-sql">
CREATE TABLE t_arrays (
id integer not null primary key,
string_array VARCHAR(20)[],
number_array INTEGER[]
)
CREATE FUNCTION f_arrays(in_array IN text[]) RETURNS text[]</pre>
<p>When generating source code from the above entities, these artefacts will be created in Java: </p>
<pre class="prettyprint lang-java">
public class TArrays extends UpdatableTableImpl&lt;TArraysRecord&gt; {
// The generic type parameter &lt;T&gt; is bound to an array of a matching type
public static final TableField&lt;TArraysRecord, String[]&gt; STRING_ARRAY = // [...]
public static final TableField&lt;TArraysRecord, Integer[]&gt; NUMBER_ARRAY = // [...]
}
// The convenience class is enhanced with these methods
public final class Functions {
public static String[] fArrays(Connection connection, String[] inArray) throws SQLException { // [...]
public static Field&lt;String[]&gt; fArrays(String[] inArray) { // [...]
public static Field&lt;String[]&gt; fArrays(Field&lt;String[]&gt; inArray) { // [...]
}</pre>
<h3>Example: Oracle VARRAY types</h3>
<p>In Oracle, a VARRAY type is something slightly different than in
other RDMBS. It is a type that encapsules the actual ARRAY and creates
a new type from it. While all text[] types are equal and thus
compatible in Postgres, this does not apply for all VARRAY OF VARCHAR2
types. Hence, it is important to provide access to VARRAY types and
generated objects from those types as well. The example above would
read like this in Oracle: </p>
<pre class="prettyprint lang-sql">
CREATE TYPE u_string_array AS VARRAY(4) OF VARCHAR2(20)
CREATE TYPE u_number_array AS VARRAY(4) OF NUMBER(7)
CREATE TABLE t_arrays (
id NUMBER(7) not null primary key,
string_array u_string_array,
number_array u_number_array
)
CREATE OR REPLACE FUNCTION f_arrays (in_array u_string_array)
RETURN u_string_array</pre>
<p>Note that it becomes clear immediately, that a mapping from
U_STRING_ARRAY to String[] is obvious. But a mapping from String[] to
U_STRING_ARRAY is not. These are the generated
<reference class="org.jooq.ArrayRecord" /> and other
artefacts in Oracle: </p>
<pre class="prettyprint lang-java">
public class UStringArrayRecord extends ArrayRecordImpl&lt;String&gt; { // [...]
public class UNumberArrayRecord extends ArrayRecordImpl&lt;Integer&gt; { // [...]
public class TArrays extends UpdatableTableImpl&lt;TArraysRecord&gt; {
public static final TableField&lt;TArraysRecord, UStringArrayRecord&gt; STRING_ARRAY = // [...]
public static final TableField&lt;TArraysRecord, UNumberArrayRecord&gt; NUMBER_ARRAY = // [...]
}
public final class Functions {
public static UStringArrayRecord fArrays3(Connection connection, UStringArrayRecord inArray) { // [...]
public static Field&lt;UStringArrayRecord&gt; fArrays3(UStringArrayRecord inArray) { // [...]
public static Field&lt;UStringArrayRecord&gt; fArrays3(Field&lt;UStringArrayRecord&gt; inArray) { // [...]
}</pre>
<h2>ENUM types</h2>
<p>True ENUM types are a rare species in the RDBMS world. Currently,
MySQL and Postgres are the only RDMBS supported by jOOQ, that provide
ENUM types. </p>
<ul>
<li>In MySQL, an ENUM type is declared directly upon a column. It cannot be reused as a type. See the <a href="http://dev.mysql.com/doc/refman/5.5/en/enum.html">documentation.</a> </li>
<li>In Postgres, the ENUM type is declared independently and can be reused among tables, functions, etc. See the <a href="http://www.postgresql.org/docs/9.0/interactive/datatype-enum.html">documentation.</a> </li>
<li>Other RDMBS know about "ENUM constraints", such as the Oracle CHECK constraint. These are not true ENUMS, however. jOOQ refrains from using their information for source code generation </li>
</ul>
<p>Some examples: </p>
<pre class="prettyprint lang-sql">
-- An example enum type
CREATE TYPE u_book_status AS ENUM ('SOLD OUT', 'ON STOCK', 'ORDERED')
-- An example useage of that enum type
CREATE TABLE t_book (
id INTEGER NOT NULL PRIMARY KEY,
-- [...]
status u_book_status
)</pre>
<p>The above Postgres ENUM type will be generated as </p>
<pre class="prettyprint lang-java">
public enum UBookStatus implements EnumType {
ORDERED("ORDERED"),
ON_STOCK("ON STOCK"),
SOLD_OUT("SOLD OUT");
// [...]
}</pre>
<p>Intuitively, the generated classes for the T_BOOK table in Postgres would look like this: </p>
<pre class="prettyprint lang-sql">
// The meta-model class
public class TBook extends UpdatableTableImpl&lt;TBookRecord&gt; {
// The TableField STATUS binds &lt;T&gt; to UBookStatus
public static final TableField&lt;TBookRecord, UBookStatus&gt; STATUS = // [...]
// [...]
}
// The record class
public class TBookRecord extends UpdatableRecordImpl&lt;TBookRecord&gt; {
// Corresponding to the Table meta-model, also setters and getters
// deal with the generated UBookStatus
public void setStatus(UBookStatus value) { // [...]
public UBookStatus getStatus() { // [...]
}</pre>
<p>Note that jOOQ allows you to simulate ENUM types where this makes
sense in your data model. See the section on
<reference id="MasterData" title="master data"/> for more
details. </p>
</content>
</section>
<section id="SEQUENCE">
<title>Sequences</title>
</section>