JUQ 객체 지향 쿼리
JOOQ Object Oriented Querying![]() |
개발자 | Data Geekery Gmbh |
---|---|
안정된 릴리스 | 3.14.8 / 2021년 2월 26일, [1] 전( |
저장소 | github |
기입처 | 자바 |
운영 체제 | 크로스 플랫폼 |
플랫폼 | 자바 |
유형 | 오브젝트-관계매핑 |
면허증. | 듀얼 라이선스:ASL 2.0 및 상용 |
웹 사이트 | www |
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.아이디))));
「 」를 참조해 주세요.
레퍼런스
- ^ "Releases · jOOQ/jOOQ". github.com. Retrieved 2021-04-13.