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.

외부 링크