面向Java对象查询

Java物件導向查詢（，縮寫：JOOQ），是一个轻量级的JAVA数据库映射类库。它实现了Active Record，同时面向“关系”和“对象”提供领域特定语言以构造查询语句。

 编程范式 

jOOQ主张，在任何数据库集成中，都应首先考虑发挥SQL的作用。这样一来，就不必再引入新的查询语言，而只是通过jOOQ对象以及依照数据库架构自动生成的代码来创建普通的SQL。jOOQ通过JDBC来完成底层的SQL查询。
与诸如Hibernate等通常ORM类库不同的是，jOOQ并不提供过多的功能，复杂性也不高，它只是提供了JDBC之上更便捷的抽象层封装而已。

 代码范例 

嵌套查询一个起了别名的表

  -- 选取已售罄书籍的作者
  SELECT * FROM AUTHOR a
        WHERE EXISTS (SELECT 1
                   FROM BOOK
                  WHERE BOOK.STATUS = 'SOLD OUT'
                    AND BOOK.AUTHOR_ID = a.ID);

等价的jOOQ

  // 在Select语句中使用别名
  create.selectFrom(AUTHOR.as("a"))
        .where(exists(selectOne()
                     .from(BOOK)
                     .where(BOOK.STATUS.equal(BOOK_STATUS.SOLD_OUT))
                     .and(BOOK.AUTHOR_ID.equal(a.ID))));

 详见 

 Hibernate
 MyBatis
 Ebean
 对象关系映射软件列表
 SQL
 ObjectiveSQL

 外部链接 

 jOOQ Home 
 JSR-341 
 JaQu 
 Linq4j 
 Quaere
 QueryDSL 
 ObjectiveSql 

Category:Java平台
Category:Java企业平台