Java 프로젝트에서 일반 SQL 문자열 대신 쿼리 작성을 위해 jooq를 사용하기 시작했습니다. 라이브러리는 훌륭하지만 질문이 있습니다. (jooq-newbie이기 때문에) : jooq를 사용하여 데이터베이스를 만들 수 있습니까?하지만 프로젝트가 없으면 jooq 매핑/생성기가 필요합니까?jooq가있는 데이터베이스 생성 문
답변
코드 생성기에 의존하지 않고 jOOQ로 할 수있는 일이 많이 있습니다. 예를 들어
http://www.jooq.org/doc/2.6/manual/getting-started/use-cases/jooq-as-a-standalone-sql-builder/
: 수동에서 시작 가이드는 몇 가지 예를 언급
String sql = create.select(
fieldByName("BOOK","TITLE"),
fieldByName("AUTHOR","FIRST_NAME"),
fieldByName("AUTHOR","LAST_NAME"))
.from(tableByName("BOOK"))
.join(tableByName("AUTHOR"))
.on(fieldByName("BOOK", "AUTHOR_ID").equal("AUTHOR", "ID"))
.where(fieldByName("BOOK", "PUBLISHED_IN").equal(1948))
.getSQL();
그것은 또한 "일반 SQL"에 대한 jOOQ를 사용하는 방법에 대한 매뉴얼의 섹션에 대한 참조 :
http://www.jooq.org/doc/2.6/manual/sql-building/plain-sql/
물론 코드 생성기를 사용하여 다음에 대한 메타 정보를 생성 할 수 있습니다. 귀하의 스키마. 이것은 생성기가 컴파일 타임에만 사용되기 때문에 생성기에 런타임 종속성을 추가해야한다는 것을 의미하지 않습니다.
이것은 바보처럼 들릴지 모르지만, 'fieldByName'의 메소드 정의? 'jooq 3.0.1'을 사용하고 있는데,'fieldByName'은 실제로 하위 버전의'Factory' 클래스에서 찾을 수 있습니다. 그러나 낮은 버전 (2.6.4)으로 전환하면'DSL' 클래스를 사용할 수 없습니다. – Bnrdo
@onepotato : 다음은 2.x -> 3.x 마이그레이션 가이드입니다. http://www.jooq.org/doc/3.0/manual/reference/migrating-to-3.0. 이 메소드는 바로 ['DSL.fieldByName()'] (http://www.jooq.org/javadoc/latest/org/jooq/impl/DSL.html#fieldByName (java.lang.String ..)에 있습니다. .))) –
코드를 생성하려고합니까, 아니면 데이터베이스를 만들겠습니까? (jOOQ에는 DDL에 대한 공식적인 지원이 없지만 일반 SQL 명령을 사용하여 DDL을 실행할 수 있습니다). jooq-meta와 jooq-codegen을 포함하지 않는다는 것을 의미합니까? –
저장 프로 시저를 호출하여 데이터베이스를 만들려고합니다. – KernelPanic
좀 더 구체적으로 작성하십시오. 이 질문에 대답하는 것은 매우 어렵습니다. 자세한 내용은 [Stack Overflow FAQ] (http://stackoverflow.com/faq#howtoask)를 참조하십시오. –