JUQ 객체 지향 쿼리

JOOQ Object Oriented Querying
ooQ
개발자Data Geekery Gmbh
안정된 릴리스
3.14.8 / 2021년 2월 26일, 16개월 전(2021-02-26)[1]
저장소github.com/jOOQ/jOOQ
기입처자바
운영 체제크로스 플랫폼
플랫폼자바
유형오브젝트-관계매핑
면허증.듀얼 라이선스:ASL 2.0 및 상용
웹 사이트www.jooq.org

jOOQ 객체 지향 쿼리(일반적으로 jOOQ)는 활성 레코드 패턴을 구현하는 Java의 경량 데이터베이스 매핑 소프트웨어 라이브러리입니다.그 [citation needed]목적은 데이터베이스 스키마에서 생성된 클래스에서 쿼리를 구성하기 위한 도메인 고유의 언어를 제공함으로써 관계형 및 객체 지향성을 모두 갖는 것입니다.

패러다임

jOOQ는 데이터베이스 통합에서 SQL이 우선이라고 주장합니다.따라서 새로운 텍스트 쿼리 언어를 도입하는 것이 아니라 데이터베이스 스키마에서 생성된 jOOQ 오브젝트와 코드로 플레인 SQL을 구축할 수 있습니다.jOOQ는 JDBC를 사용하여 기본 [citation needed]SQL 쿼리를 호출합니다.

JDBC 위에 추상화 기능을 제공하지만, [citation needed]JOOQ는 EclipseLink나 Hibernate와 같은 표준 객체 관계형 매핑 라이브러리만큼 많은 기능과 복잡성을 가지고 있지 않습니다.

jOOQ의 SQL에 대한 근접성은 일반적인 객체-관계형 매핑 [citation needed]라이브러리보다 장점이 있습니다.SQL에는 객체 지향 프로그래밍 패러다임에서 사용할 수 없는 많은 기능이 있습니다. 이러한 차이를 객체-관계 임피던스 불일치라고 합니다.jOOQ는 SQL에 가깝기 때문에 구문 오류와 유형 [citation needed]매핑 문제를 방지할 수 있습니다.또한 변수 바인딩도 고려됩니다.또한 jOOQ에서는 에일리어싱, 결합, 네스트된 선택 및 복잡한 조인을 포함하는 매우 복잡한 쿼리를 작성할 수 있습니다.jOOQ에서는 UDT, 열거형, 스토어드 프로시저 및 네이티브 [citation needed]함수 등 데이터베이스 고유의 기능도 지원합니다.

예

별칭 테이블에서 선택한 중첩된 쿼리

  - 매진된 책을 가진 저자를 선정합니다.   선택한다. * 부터 작가. a         어디에 존재한다 (선택한다. 1                    부터 책                   어디에 책.상황 = '매진'                     그리고. 책.작성자 ID = a.아이디); 

jOOQ DSL에서는 다음과 같습니다.

  // select 문에 앨리어스 테이블을 사용합니다.   만들다.시작점(테이블("작성자").~하듯이("a"))         .어디에(존재한다(1개 선택()                      .부터(테이블("책"))                      .어디에(들판("BOOK.STATUS").동등.(들판(「BOOK_STATUS.판매_OUT")))                      .그리고.(들판("BOOK.AUTHOR_ID").동등.(들판("a.ID"))))); 

또는 데이터베이스 메타데이터에서 코드 생성을 사용하여 상수를 생성합니다.

  // select 문에 앨리어스 테이블을 사용합니다.   최종 작가. a = 작가..~하듯이("a");    만들다.시작점(a)         .어디에(존재한다(1개 선택()                      .부터(책)                      .어디에(책.상황.동등.(BOOK_상태.매진_OUT))                      .그리고.(책.작성자 ID.동등.(a.아이디)))); 

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Releases · jOOQ/jOOQ". github.com. Retrieved 2021-04-13.

외부 링크