java - 尝试使用 SQL Server 使用 Jooq 生成代码,但无法这样做

标签 java sql gradle jooq

已尝试使用 Gradle 中的 SQL Server 配置使用 Jooq 生成代码,但无法这样做。但同样的事情在 h2DB 上运行良好。 谁能向我解释一下如何在 gradle 中使用 jooq 为 mssql 服务器生成类。

**Here is my gradle code:**

import org.jooq.util.jaxb.*
import org.jooq.util.*

buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath 'com.h2database:h2:1.4.186'   
    classpath 'org.jooq:jooq-codegen:3.9.1' 
    classpath 'com.microsoft.sqlserver:sqljdbc4:4.0' 
   classpath "io.ratpack:ratpack-gradle:0.9.7-SNAPSHOT"
    classpath 'com.github.jengelman.gradle.plugins:shadow:1.0.2'

  }
}
plugins {
  id 'io.ratpack.ratpack-java' version '1.3.3'
}

repositories {
  jcenter()
}

dependencies {
  compile ratpack.dependency('hikari') 
  compile 'com.h2database:h2:1.4.186' 
  compile 'org.jooq:jooq:3.9.1' 
  compile 'com.microsoft.sqlserver:sqljdbc4:4.0' 
  compile "io.ratpack:ratpack-gradle:0.9.7-SNAPSHOT"
  compile 'com.github.jengelman.gradle.plugins:shadow:1.0.2'

}
mainClassName = 'App'

task jooqCodegen {
  doLast {
    String init = "<directory>/init.sql"
    Configuration configuration = new Configuration()
      .withJdbc(new Jdbc()
      .withDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver") 
      .withUrl("jdbc:sqlserver://<server address>;DatabaseName=JOOQ; INIT=RUNSCRIPT FROM '$init'") 
      .withUser("****")
      .withPassword("****")
    )
      .withGenerator(new Generator()
        .withDatabase(new Database()
         .withName("org.jooq.util.sqlserver.SQLServerDatabase")
          .withIncludes(".*")
          .withExcludes("")
          .withInputSchema("dbo")
        )
      .withTarget(new Target()
        .withDirectory("$projectDir/src/main/java") 
        .withPackageName("jooq"))) 
    GenerationTool.generate(configuration)
  }
}

**Note :** Added one create table statement in init.sql file

最佳答案

jOOQ开源版不支持SQL Server as shown here 。为了将jOOQ专业版与gradle一起使用,您需要进行以下修改:

buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath 'org.jooq.pro:jooq-codegen:3.9.1' 
    // ...
  }
}
// ...

dependencies {
  compile 'org.jooq.pro:jooq:3.9.1' 
  // ...
}

请注意,Maven groupId 已更改。这些是不同 jOOQ 版本的所有可用 groupId 值:

  • org.jooq 用于开源版本(可从 Maven Central 获取)
  • org.jooq.pro 用于商业版本(Maven Central 不提供)
  • org.jooq.pro-java-6 用于支持 Java 6 的商业版本(Maven Central 不提供)
  • org.jooq.Trial 用于免费试用版(Maven Central 不提供)

关于java - 尝试使用 SQL Server 使用 Jooq 生成代码,但无法这样做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41891304/

相关文章:

android - 如何指示 Gradle 从不同位置使用 Java?

java - 使用JAVA创建一个空的json字段

java - Gradle 构建文件 org.openapi.generator openApiGenerate 列表生成器 openApiGenerators 无输出 无错误

gradle - 在Gradle中,如何执行对延迟评估的属性(在扩展名上)的验证?

sql - 如何从sql查询中获取二进制数据?

php - 在里面插入sql数据库后表类不工作

mysql - 在同一查询中重用计算字段

java - 用新检查的异常覆盖 Java 接口(interface)

java - 数组列表和空值

java - 无法解决maven项目中的import classes