本文,由本人根据JOOQ手册JOOQ in 7 easy steps翻译而成。
Step 1: 准备(Preparation)
如果还没有下载JOOQ,请先下载:
http://www.jooq.org/download
或者,可以创建一个Maven依赖项来下载jOOQ :
开源版 Open Source Edition
org.jooq
jooq
3.11.4
org.jooq
jooq-meta
3.11.4
org.jooq
jooq-codegen
3.11.4
商业版 Commercial Editions(Java 8+)
org.jooq.pro
jooq
3.11.4
org.jooq.pro
jooq-meta
3.11.4
org.jooq.pro
jooq-codegen
3.11.4
商业版 Commercial Editions (Java 6+)
org.jooq.pro-java-6
jooq
3.11.4
org.jooq.pro-java-6
jooq-meta
3.11.4
org.jooq.pro-java-6
jooq-codegen
3.11.4
商业版 (试用)Commercial Editions (Free Trial)
org.jooq.trial
jooq
3.11.4
org.jooq.trial
jooq-meta
3.11.4
org.jooq.trial
jooq-codegen
3.11.4
注意,只有jOOQ开放源码版本可以从Maven Central获得。如果您使用的是jOOQ专业版或jOOQ企业版,则必须在本地Nexus或本地Maven缓存中手动安装jOOQ。有关更多信息,请参阅授权许可页面。
请参阅手册中有关代码生成配置的部分,以了解如何在Maven中使用jOOQ的代码生成器。
对于本例,我们将使用MySQL。如果你还没有下载MySQL Connector/J,请在这里下载:
http://dev.mysql.com/downloads/connector/j/
Step 2: 你的数据库(Your database)
我们将创建一个名为“library”的数据库和一个相应的“author”表。通过命令行客户端连接到MySQL,输入以下命令:
CREATE DATABASE `library`;
USE `library`;
CREATE TABLE `author` (
`id` int NOT NULL,
`first_name` varchar(255) DEFAULT NULL,
`last_name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
);
Step 3: 代码生成 (Code generation)
在这一步中,我们将使用jOOQ的命令行工具来生成映射到我们刚刚创建的Author表的类。更多关于如何设置jOOQ代码生成器的详细信息可以在第6章里找到。
生成schema的最简单方法是将jOOQ jar文件(应该有3个)和MySQL Connector jar文件复制到一个临时目录。然后,创建一个库。如下所示的xml:
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/library
root
org.jooq.codegen.JavaGenerator
org.jooq.meta.mysql.MySQLDatabase
library
.*
test.generated
C:/workspace/MySQLTest/src/main/java
用任何具有查询数据库元数据的适当特权的用户替换user。您还需要查看其他值并根据需要进行替换。
以下是两个有趣的特性:
- generator.target.package - 将此设置为要为生成的类创建的父包。 此处的test.generated包,将用来保存生成的test.generated.Author和test.generated.AuthorRecord两个类.
- generator.target.directory - 输出到的目录
一旦您拥有了JAR文件和library.xml在temp目录中,在Windows计算机上键入这个:
java -classpath jooq-3.11.4.jar:jooq-meta-3.11.4.jar:jooq-codegen-3.11.4.jar:mysql-connector-java-5.1.18-bin.jar:. org.jooq.codegen.GenerationTool library.xml
注意:jOOQ将尝试从你的classpath中加载library.xml。这也是为什么classpath尾部有一个点符号(.)的原因。如果在classpath中找不到这个文件,jOOQ将从当前工作目录文件系统进行检索。
用真实的文件名替换文件名。在本例中,使用的是jOOQ 3.11.4。如果一切正常,您应该在控制台输出中看到:
Nov 1, 2011 7:25:06 PM org.jooq.impl.JooqLogger info
INFO: Initialising properties : /library.xml
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: Database parameters
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: ----------------------------------------------------------
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: dialect : MYSQL
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: schema : library
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: target dir : C:/workspace/MySQLTest/src
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: target package : test.generated
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: ----------------------------------------------------------
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: Emptying : C:/workspace/MySQLTest/src/test/generated
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: Generating classes in : C:/workspace/MySQLTest/src/test/generated
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: Generating schema : Library.java
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: Schema generated : Total: 122.18ms
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: Sequences fetched : 0 (0 included, 0 excluded)
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: Tables fetched : 5 (5 included, 0 excluded)
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: Generating tables : C:/workspace/MySQLTest/src/test/generated/tables
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: ARRAYs fetched : 0 (0 included, 0 excluded)
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: Enums fetched : 0 (0 included, 0 excluded)
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: UDTs fetched : 0 (0 included, 0 excluded)
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: Generating table : Author.java
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: Tables generated : Total: 680.464ms, +558.284ms
Nov 1, 2011 7:25:07 PM org.jooq.impl.JooqLogger info
INFO: Generating Keys : C:/workspace/MySQLTest/src/test/generated/tables
Nov 1, 2011 7:25:08 PM org.jooq.impl.JooqLogger info
INFO: Keys generated : Total: 718.621ms, +38.157ms
Nov 1, 2011 7:25:08 PM org.jooq.impl.JooqLogger info
INFO: Generating records : C:/workspace/MySQLTest/src/test/generated/tables/records
Nov 1, 2011 7:25:08 PM org.jooq.impl.JooqLogger info
INFO: Generating record : AuthorRecord.java
Nov 1, 2011 7:25:08 PM org.jooq.impl.JooqLogger info
INFO: Table records generated : Total: 782.545ms, +63.924ms
Nov 1, 2011 7:25:08 PM org.jooq.impl.JooqLogger info
INFO: Routines fetched : 0 (0 included, 0 excluded)
Nov 1, 2011 7:25:08 PM org.jooq.impl.JooqLogger info
INFO: Packages fetched : 0 (0 included, 0 excluded)
Nov 1, 2011 7:25:08 PM org.jooq.impl.JooqLogger info
INFO: GENERATION FINISHED! : Total: 791.688ms, +9.143ms
在Mac操作系统上,基于jooq3.11.4,执行如下命令
bogon:temp goldfish$ java -classpath jooq-3.11.4.jar:jooq-meta-3.11.4.jar:jooq-codegen-3.11.4.jar:mysql-connector-java-5.1.46.jar:. org.jooq.codegen.GenerationTool library.xml
输出内容:
九月 12, 2018 2:03:57 下午 org.jooq.tools.JooqLogger info
信息: Initialising properties : library.xml
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: No was provided. Generating ALL available catalogs instead.
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: License parameters
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: ----------------------------------------------------------
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Thank you for using jOOQ and jOOQ's code generator
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息:
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Database parameters
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: ----------------------------------------------------------
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: dialect : MYSQL
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: URL : jdbc:mysql://localhost:3306/library?characterEncoding=UTF-8&useSSL=false
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: target dir : /Users/goldfish/Downloads/temp
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: target package : test.generated
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: includes : [.*]
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: excludes : []
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: includeExcludeColumns : false
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: ----------------------------------------------------------
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息:
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: JavaGenerator parameters
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: ----------------------------------------------------------
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: annotations (generated): true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: annotations (JPA: any) : false
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: annotations (JPA: version):
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: annotations (validation): false
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: comments : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: comments on attributes : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: comments on catalogs : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: comments on columns : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: comments on keys : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: comments on links : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: comments on packages : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: comments on parameters : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: comments on queues : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: comments on routines : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: comments on schemas : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: comments on sequences : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: comments on tables : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: comments on udts : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: daos : false
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: deprecated code : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: global references (any): true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: global references (catalogs): true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: global references (keys): true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: global references (links): true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: global references (queues): true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: global references (routines): true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: global references (schemas): true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: global references (sequences): true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: global references (tables): true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: global references (udts): true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: indexes : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: instance fields : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: interfaces : false
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: interfaces (immutable) : false
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: javadoc : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: keys : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: links : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: pojos : false
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: pojos (immutable) : false
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: queues : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: records : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: routines : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: sequences : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: table-valued functions : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: tables : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: udts : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: relations : true
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: ----------------------------------------------------------
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息:
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Generation remarks
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: ----------------------------------------------------------
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息:
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: ----------------------------------------------------------
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Generating catalogs : Total: 1
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@ @@ @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@
@@@@@@@@@@@@@@@@ @@ @@ @@@@@@@@@@
@@@@@@@@@@ @@@@ @@ @@ @@@@@@@@@@
@@@@@@@@@@ @@ @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@ @@ @@@@@@@@@@
@@@@@@@@@@ @@ @@ @@@@ @@@@@@@@@@
@@@@@@@@@@ @@ @@ @@@@ @@@@@@@@@@
@@@@@@@@@@ @@ @ @ @@@@@@@@@@
@@@@@@@@@@ @@ @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Thank you for using jOOQ 3.11.4
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: ARRAYs fetched : 0 (0 included, 0 excluded)
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Enums fetched : 0 (0 included, 0 excluded)
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Packages fetched : 0 (0 included, 0 excluded)
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Routines fetched : 0 (0 included, 0 excluded)
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Tables fetched : 1 (1 included, 0 excluded)
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: No schema version is applied for catalog . Regenerating.
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息:
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Generating catalog : DefaultCatalog.java
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: ==========================================================
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Generating schemata : Total: 1
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: No schema version is applied for schema library. Regenerating.
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Generating schema : Library.java
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: ----------------------------------------------------------
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Sequences fetched : 0 (0 included, 0 excluded)
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: UDTs fetched : 0 (0 included, 0 excluded)
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Generating tables
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Synthetic primary keys : 0 (0 included, 0 excluded)
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Overriding primary keys : 1 (0 included, 1 excluded)
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Generating table : Author.java [input=author, output=author, pk=KEY_author_PRIMARY]
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Indexes fetched : 1 (1 included, 0 excluded)
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Tables generated : Total: 659.457ms
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Generating table references
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Table refs generated : Total: 661.061ms, +1.604ms
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Generating Keys
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Keys generated : Total: 663.21ms, +2.149ms
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Generating Indexes
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Indexes generated : Total: 665.02ms, +1.809ms
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Generating table records
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Generating record : AuthorRecord.java
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Table records generated : Total: 674.362ms, +9.342ms
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Domains fetched : 0 (0 included, 0 excluded)
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Generation finished: library: Total: 674.759ms, +0.396ms
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息:
九月 12, 2018 2:03:58 下午 org.jooq.tools.JooqLogger info
信息: Removing excess files
Step 4: 连接数据库(Connect to your database)
让我们在项目中编写一个普通的main class,其中包含生成的classes:
// For convenience, always static import your generated tables and jOOQ functions to decrease verbosity:
import static test.generated.Tables.*;
import static org.jooq.impl.DSL.*;
import java.sql.*;
public class Main
{
public static void main(String[] args)
{
String userName = "root";
String password = "";
String url = "jdbc:mysql://localhost:3306/library";
// Connection is the only JDBC resource that we need
// PreparedStatement and ResultSet are handled by jOOQ, internally
try (Connection conn = DriverManager.getConnection(url, userName, password))
{
// ...
}
// For the sake of this tutorial, let's keep exception handling simple
catch (Exception e)
{
e.printStackTrace();
}
}
}
这是建立MySQL连接的标准代码。
Step 5 : 查询(Querying)
让我们添加一个用jOOQ的查询DSL构造的简单查询:
DSLContext create = DSL.using(conn, SQLDialect.MYSQL);
Result result = create.select().from(AUTHOR).fetch();
首先获得DSLContext的一个实例,这样我们就可以编写一个简单的SELECT查询。我们将MySQL连接的实例传递给DSL。注意,DSLContext不会关闭连接。我们得自己做。
然后,我们使用jOOQ的查询DSL返回一个Result实例。我们将在下一步中使用这个结果。
Step 6 : 遍历(Iterating)
在查询出结果的行之后,让我们迭代结果并打印出数据:
for (Record r : result)
{
Integer id = r.getValue(AUTHOR.ID);
String firstName = r.getValue(AUTHOR.FIRST_NAME);
String lastName = r.getValue(AUTHOR.LAST_NAME);
System.out.println("ID: " + id + " first name: " + firstName + " last name: " + lastName);
}
完整的程序现在应该是这样的:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.jooq.DSLContext;
import org.jooq.Record;
import org.jooq.Result;
import org.jooq.SQLDialect;
import org.jooq.impl.DSL;
import static test.generated.Tables.*;
public class Main
{
public static void main(String[] args)
{
String userName = "root";
String password = "123456";
String url = "jdbc:mysql://localhost:3306/library?characterEncoding=UTF-8&useSSL=false";
Connection conn = null;
try
{
conn = DriverManager.getConnection(url, userName, password);
// 使用JOOQ进行查询
DSLContext create = DSL.using(conn, SQLDialect.MYSQL);
Result result = create.select().from(AUTHOR).fetch();
for (Record r : result)
{
Integer id = r.getValue(AUTHOR.ID);
String firstName = r.getValue(AUTHOR.FIRST_NAME);
String lastName = r.getValue(AUTHOR.LAST_NAME);
System.out.println("ID: " + id + " first name: " + firstName + " last name: " + lastName);
}
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
if (conn != null)
{
try
{
conn.close();
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
}
}
注意:import static test.generated.Tables.*;
如果没有静态引入,就需要通过Tables.AUTHOR进行使用。
Step 7: 探索(Explore!)
jOOQ已经发展成为一个全面的SQL库。更多信息,请考虑文件:
http://www.jooq.org/learn
... explore the Javadoc:
http://www.jooq.org/javadoc/latest/
... or join the news group:
https://groups.google.com/forum/#!forum/jooq-user
本教程由Ikai Lan提供。请参阅这里的原始源代码:
http://ikaisays.com/2011/11/01/getting-started-with-jooq-a-tutorial/