jooq란?/
jooq 사용, jooq gradle plugin
여기서는 jooq 를 사용하는데, jooq gradle plugin 을 이용해서 사용한다.
jooq 팀에서도 Grdle plugin 을 쓰는 것을 권장한다.
여기서는 gradle-jooq-plugin 의 README.md 의 내용을 기초로 사용법을 설명한다.
가장 간단한 예제는 아래와 같다.
generationTool
setup for generationTool
여기서는 mariadb와 연동되는 springboot 에 적용해서 mariadb 의 table, record 관련된 class 를 generationTool 을 사용해서 만드는 작업을 해보려 한다.
먼저, 다음링크를 참고해서 springboot 을 준비하자.
jooq.gradle
: 여기에 다음처럼*.gradle
파일을 추가하자. 그냥 build.gradle 에 전부 넣을 수도 있다. 그것은 여기를 참고하자.build.gradle
... apply from: 'jooq.gradle' ...
jooq.gradle
:database.inputSchema
를 지정해주지 않으면, 전체 database 에 대해 class 를 생성한다.database.include
,database.exclude
: code generation 할때, include, exclude 조건을 넣을 수 있다. 예를 들면, 특정 이름의 table 에 대한 code generation 을 하거나 할 수 있다. 자세한 것은 Includes and Excludes 를 참고하자.
import nu.studer.gradle.jooq.JooqEdition buildscript { repositories { gradlePluginPortal() } dependencies { classpath 'nu.studer:gradle-jooq-plugin:8.2' } } apply plugin: nu.studer.gradle.jooq.JooqPlugin repositories { mavenCentral() } dependencies { // mariadb 가 아니라면, 다른 client 를 사용하게 된다. jooqGenerator 'org.mariadb.jdbc:mariadb-java-client' } jooq { configurations { main { generationTool { logging = org.jooq.meta.jaxb.Logging.WARN jdbc { url = 'jdbc:mariadb://localhost:3307/stest?useUnicode=true&characterEncoding=utf-8' user = 'root' password = 'root' driver = 'org.mariadb.jdbc.Driver' properties { property { // 이건 그냥 자신이 원하는 변수를 지정하는 부분으로 보면된다. key = 'PAGE_SIZE' value = 2048 } } } generator { name = 'org.jooq.codegen.DefaultGenerator' database { name ='org.jooq.meta.mariadb.MariaDBDatabase' inputSchema = 'stest' // 이것을 지정해주면, 여기 지정된 database의 schema 의 class 만 만든다. include = '.*' exclude = 'flyway_schema_history' } target { packageName = 'com.namh.namhex' } strategy { name = "org.jooq.codegen.DefaultGeneratorStrategy" } } } } } }
gradlew.bat generateJooq
를 실행하면 class file 들이 만들어진다.- 위 같은 경우 packageName 이
com.namh.namhex
이기에 다음경로에 DB table, record에 대한 class file 이 다음 경로에 만들어진다.<root>\build\generated-src\jooq\main\com\namh\namhex
- 위 같은 경우 packageName 이
d:\namhex000>gradlew generateJooq
> Task :generateJooq
SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.2.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD SUCCESSFUL in 5s
1 actionable task: 1 executed
jooq gradle-plugin examples
jooq 사용, jooq gradle plugin
db에 접속해서 table의 schema 를 얻는 것이 아니라 local 에 있는 schema 를 이용해서 만들수도 있다.
- Using jOOQ with Flyway
- gradle-jooq-plugin/example/configure_jooq_with_flyway/build.gradle at main · etiennestuder/gradle-jooq-plugin · GitHub
댓글 없음:
댓글 쓰기