2017-02-21 104 views
0

我在我的項目中通過Gradle配置jOOQ,需要通過SSH隧道連接到我的數據庫。我找不到任何有關如何入門的文檔。我現在的配置(不含隧道)的樣子:與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隧道來連接到我的數據庫?

+0

您遇到什麼問題? –

+0

@LukasEder,我知道如何告訴jOOQ直接連接到數據庫,但我不知道如何設置它以使用SSH隧道。所以我正在尋找一種通過使用代理/ SSH隧道服務器連接到數據庫的配置。 – lebolo

回答

0

jOOQ的代碼生成器配置沒有提供JDBC已經提供的很多東西。所以標準的方法是提供一個JDBC URL,用戶名,密碼和可選的一些屬性。

如果您已有JDBC Connection(您通過SSH隧道構建,具體取決於您的意思),也可以將其傳遞給GenerationTool。用您的GenerationTool替換您的電話:

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