【问题标题】:Using SSH tunnel with jOOQ在 jOOQ 中使用 SSH 隧道
【发布时间】:2017-07-11 05:17:15
【问题描述】:

我正在我的项目中通过 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 隧道连接到我的数据库?

【问题讨论】:

  • 您遇到了什么问题?
  • @LukasEder,我知道如何告诉 jOOQ 直接连接到数据库,但我不知道如何设置它以使用 SSH 隧道。所以我正在寻找一种可以使用代理/SSH 隧道服务器连接到数据库的配置。

标签: gradle jooq ssh-tunnel


【解决方案1】:

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

如果您已经有一个 JDBC Connection(您通过 SSH 隧道构建,取决于您的意思),您也可以将它传递给 GenerationTool。用这个替换你的GenerationTool 电话:

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

【讨论】:

    猜你喜欢
    • 2019-08-07
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多