inflearn logo
강의

講義

知識共有

本当のjOOQ! Type Safe SQL with Java

Conditionを活用した簡潔な検索条件の作成

IDE로 스프링부트 실행없이 jooq로 짠 쿼리 결과를 바로 확인하는 방법이 있을까요?

解決済みの質問

502

Sol Park

投稿した質問数 4

1

jOOQ를 공부하면서 너무 편하게 쿼리를 작성하고 있는데 한가지 불편한 점이 있어서 질문 드립니다.

 

단순 쿼리 결과를 확인하고 싶은 경우 마이바티스는 xml에 짠 쿼리를 DB 스키마와 바로 연결해 스프링부트를 띄울 필요 없이 intelliJ IDE에서 쿼리를 날리고 서비스 탭에서 쿼리 결과를 보여주도록 할 수있는데, jOOQ는 자바 코드로 되어 있어서 이렇게 IDE에서 바로 쿼리 결과를 확인해볼 수 없더라구요.

 

테스트코드로 실행한 후 나간 쿼리를 직접 sql 콘솔에 찍어 결과를 보거나, 강의 마지막에 알려주신 jooq SQL 변환 사이트로 자바 코드로 되어있는 jooq 구문을 sql로 변환해서 sql 콘솔에서 실행하는 방법 말고 더 편리한 방법이 있는지 궁금합니다.

java sql spring-boot jooq dsl

回答 1

3

sdm32851630

Sol Park님 안녕하세요 🙂

우선 강의를 완강하셨군요! 축하드립니다! ㅎㅎ

 

말씀하신 것처럼 두 가지 방법이 최선입니다.

  • 테스트 코드를 통해 jOOQ로 작성한 쿼리를 실행시키거나

  • jOOQ Translator 사이트를 이용하거나 (SQL Parser API 사용)

 

보통 jOOQ를 사용 할 때 제일 많이 받은 피드백 중 하나가

"MyBatis 처럼 SQL을 바로 실행하거나 이미 작성한 SQL을 붙여 넣을 수 없다." 인데요. 

이 부분은 우리가 SQL을 프로그래매틱하게 제어함으로써 얻은 생산성, 안정성과 같은 이점에 대한

트레이드 오프라고 생각합니다. (슬프게도 은총알은 없습니다!)


실제로 비슷한 원리로 사용되는

QueryDSL, kotlin의 exposed와 kotlin-jdsl, 스칼라의 slick과 같은 기술들

모두 같은 문제를 가지고 있습니다.

 

다행히도(?) 다른 기술들은 1번밖에 선택지가 없지만

jOOQ는 2번 선택지도 있다는 점을 인지하시면 좋을듯합니다.

감사합니다.

1

Sol Park

감사합니다. 역시 은총알은 없는 것이군요ㅎㅎ

그래도 말씀해주신 것처럼 jooq의 장점이 확실해서 앞으로도 마이바티스는 jooq로 완전 대체해서 사용해볼까 합니다.

답변 감사합니다!

안녕하세요 FetchGroups에서 Multiset방식 사용하면 어떤가 해서 물어봅니다

0

60

1

monosoul jooq plugin-docker registry 변경

1

101

3

질문) jOOQ 프로젝트에서 CI/CD 자동화 문의

1

173

3

generate dao 를 통한 삽입 시 pk auto-increment 가 적용되지 않습니다

1

109

1

jooq+flyway에서 질문드립니다

0

249

2

안녕하세요 생성일,생성자,수정일,수정자는 자동으로 해주는 기능이 있을까요?

0

206

2

[사례] Maven에서 TestContainers 플러그인 적용시 예외발생

0

142

0

Routines 관련 질문

1

159

2

JOOQ 환경설정 중에 db 패스워드 관련 질문입니다.

1

173

1

Sakila DB 도커 컴포즈 구성 시 팁

1

152

1

DB 벤더별 내장함수에 대한 방언 지원 듣고 질문드려요

1

176

1

인텔리제이 테마 질문

2

423

3

kotlin jOOQ , 컴파일시 힙메모리 부족

0

523

2

pojo 에 setter 가 없는 경우가 있을까요?

1

189

1

FilmWithActor로 fetch 시 select와 생성자의 매개변수 순서가 다를 경우 map이 정상적으로 이루어 지지않는 케이스

1

228

1

from절 subquery table filed nullable 처리

1

221

1

kotlin mapping error

0

517

4

db column은 not null로 되어 있는데 kotlin에서 pojo가 다 nullable로 생성되요.

0

514

1

하나의 디비를 여러 백엔드 서버가 필요로 할 때, flyway 관리

1

887

5

dslContext 작성 시 fetchGroups 이렇게 작성해도 될까요?

2

638

6

update with dto 질문

1

267

1

R2DBC 환경에서 jOOQ generate 된 Dao를 사용할 수 있는 방법이 있을까요?

2

1243

3

build.gradle.kts

3

755

2

마리아 DB 쓰시는분들은 mysql 파일 쓰시면됩니다.

1

371

1