使用SSH隧道与jOOQ

时间:2017-02-21 14:16:04

标签: gradle jooq ssh-tunnel

我正在我的项目中通过Gradle配置jOOQ,需要通过SSH隧道开始连接到我的数据库。我找不到任何关于如何入门的文档。我当前的配置(没有隧道)看起来像:

task generateJooq << {
    def writer = new StringWriter()
    new MarkupBuilder(writer).configuration('xmlns': 'http://www.jooq.org/xsd/jooq-codegen-3.9.0.xsd') {
        jdbc() {
            driver('org.postgresql.Driver')
            url(props.getProperty('datasource.url')) // From a properties file
            user(props.getProperty('datasource.user')) // From a properties file
            password(props.getProperty('datasource.pass')) // From a properties file
        }
        generator() {
            database() {
                inputSchema('public')
            }
            generate() {
                pojos(true)
                daos(true)
            }
            target() {
                packageName('com.foo.bar.model.dao')
                directory(Paths.get(project.projectDir.toString(), 'src/main/java'))
            }
        }
    }

    GenerationTool.generate(
            JAXB.unmarshal(new StringReader(writer.toString()), org.jooq.util.jaxb.Configuration.class)
    )
}

如何修改此配置以使用SSH隧道连接到我的数据库?

1 个答案:

答案 0 :(得分:0)

jOOQ的代码生成器配置并没有提供很多基于JDBC已经开箱即用的东西。因此,标准方法是提供JDBC URL,用户名,密码以及可选的一些属性。

如果您已经拥有JDBC Connection(通过SSH隧道构建,具体取决于您的意思),您也可以将其传递给GenerationTool。以此替换您的GenerationTool来电:

GenerationTool tool = new GenerationTool();
tool.setConnection(connection);
tool.generate(configuration); // Your JAXB call here...