面向Java對象查詢

Java物件導向查詢(英語:Java Object Oriented Querying縮寫JOOQ),是一個輕量級的JAVA數據庫映射類庫。它實現了Active Record,同時面向「關係」和「對象」提供領域特定語言以構造查詢語句。

jOOQ
開發者Data Geekery GmbH
當前版本3.3.0(2014年2月14日 (2014-02-14)
程式語言Java
作業系統跨平台
平台Java
類型對象關係映射
許可協議Dual-licensed: ASL 2.0 and commercial
網站http://www.jooq.org

編程範式

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))));

詳見

外部連結