사용자 도구

사이트 도구


gradle:jooq_codegen

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
gradle:jooq_codegen [2017/12/21 08:37]
kwon37xi [Gradle 에서 코딩으로 code generation]
gradle:jooq_codegen [2017/12/27 08:52] (현재)
kwon37xi [jOOQ gradle code generation]
줄 4: 줄 4:
   * [[http://kingbbode.tistory.com/36|jOOQ !! (Java Object Oriented Querying)]]   * [[http://kingbbode.tistory.com/36|jOOQ !! (Java Object Oriented Querying)]]
   * [[https://www.jooq.org/doc/3.10/manual/code-generation/codegen-matcherstrategy/|CodeGen Matcher Strategy]] : 프로그래밍 작업없이 설정만으로 생성되는 Java Class의 Table과 필드 이름 등의 패턴을 지정할 수 있다(camel case, underbar, 혹은 이름변환 없이 등)   * [[https://www.jooq.org/doc/3.10/manual/code-generation/codegen-matcherstrategy/|CodeGen Matcher Strategy]] : 프로그래밍 작업없이 설정만으로 생성되는 Java Class의 Table과 필드 이름 등의 패턴을 지정할 수 있다(camel case, underbar, 혹은 이름변환 없이 등)
 +  * [[https://www.jooq.org/doc/3.5/manual/sql-execution/fetching/data-type-conversion/|Data type conversion]] 에서 Type Converter를 만들고 [[https://www.jooq.org/doc/3.7/manual/code-generation/custom-data-types/|Custom data types and type conversion]] 소스 생성시 타입 변환
  
 ===== Gradle 에서 코딩으로 code generation ===== ===== Gradle 에서 코딩으로 code generation =====
 +  * [[https://www.jooq.org/doc/3.10/manual/code-generation/codegen-gradle/|Running the code generator with Gradle]]
 +  * [[https://gist.github.com/kwon37xi/c0919d79d8af49d9113f5b46bd5c0fcf|jOOQ Gradle Code Generation GIST 참조]]
 +===== From JPA =====
 +  * [[https://www.jooq.org/doc/3.10/manual/code-generation/codegen-jpa/|JPADatabase: Code generation from entities]] 
 +  * JPA Entity로 부터 코드를 생성할 수 있다. 내부적으로 Hibernate가 H2 데이터베이스에 DB를 생성하고 이를 생성기가 역으로 코드로 만드는 작업을 한다.
  
-<code groovy> +===== From Schema XML ===== 
-buildscript { +  * [[https://www.jooq.org/doc/3.10/manual/code-generation/codegen-xml/|XMLDatabaseCode generation from XML files]] 
-  dependencies { +  * DB Schema 를 XML로 만들어 두고 여기서 코드를 생성할 수 있다. DB 인스턴스가 항상 떠 있을 필요가 없어서 좋다.
-    classpath 'org.jooq:jooq-codegen:3.10.2' +
-    classpath "mysql:mysql-connector-java:${mySqlDriverVersion}" +
-  +
-}+
  
-task generateOrderShardJooqSources { +===== From DDL SQL ===== 
-  def writer new StringWriter() +  * [[https://www.jooq.org/doc/3.10/manual/code-generation/codegen-ddl/|DDLDatabase: Code generation from SQL files]] 
-  new groovy.xml.MarkupBuilder(writer) +  * [[java:database:migration:flyway|Flyway Java Database Migration]] Flyway 마이그레이션 스크립트 같은 DDL SQL 파일로부터 코를 생성할 수 있다. SQL을 파싱해 H2 Database를 생성하고 를 통해 다시 코드를 생성하는 방식.
-    .configuration('xmlns': 'http://www.jooq.org/xsd/jooq-codegen-3.10.0.xsd') { +
-    jdbc() { +
-      driver('com.mysql.jdbc.Driver'+
-      url('jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8'+
-      user('un'+
-      password('password'+
-    } +
-    generator() { +
-      strategy { +
-        matchers { +
-          tables { +
-            table { +
-              tableClass { +
-                transform('PASCAL') // JqUser 와 같은 형식 +
-                expression('JQ_$0'+
-              } +
-            } +
-          } +
-          fields { +
-            field { +
-              fieldIdentifier { +
-                transform('AS_IS') // 컬럼 필드 이름은 컬럼 름과 동일하게 +
-              } +
-            } +
-          } +
-        } +
-      } +
-      database() { +
-        name('org.jooq.util.mysql.MySQLDatabase') // DB 타입 설정 +
-        includes('.*'+
-        schemata { +
-          schema { +
-            inputSchema('test'+
-          } +
-          schema { +
-            inputSchema('sakila'+
-          } +
-        } +
-      }+
  
-      // Watch out for this caveat when using MarkupBuilder with "reserved names" 
-      // - http://stackoverflow.com/a/11389034/521799 
-      generate([:]) { 
-        pojos false 
-        daos false 
-      } 
-      target() { 
-        packageName('kr.pe.kwonnam.test.jooq') 
-        directory(file('src/generated/java-jooq').absolutePath) 
-      } 
-    } 
-  } 
  
-  org.jooq.util.GenerationTool.generate( 
-    javax.xml.bind.JAXB.unmarshal(new StringReader(writer.toString()), org.jooq.util.jaxb.Configuration.class) 
-  ) 
-} 
-</code> 
gradle/jooq_codegen.1513814824.txt.gz · 마지막으로 수정됨: 2017/12/21 08:37 저자 kwon37xi