我想在数据库环境是动态的服务器上使用 jooq
Posted
技术标签:
【中文标题】我想在数据库环境是动态的服务器上使用 jooq【英文标题】:I want to use jooq on a server where the DB environment is dynamic 【发布时间】:2019-01-06 10:39:49 【问题描述】:。
我想在 spring boot 2 gradle 环境中使用 jooq。 但有一个问题。 build.gradle 文件需要硬编码的数据库信息,但可用。 我可以在 QueryDSL 中只创建像 QClass 这样的 JClass 吗?
我在服务器的外部环境 创建动态数据源,例如 ClassName、UserName、Password 和 URL。 硬编码的jooq不能用。
在jooq中
jooq
version = '3.11.2'
sample(sourceSets.main)
jdbc
driver = 'org.postgresql.Driver'
url = 'jdbc:mysql//localhost:3306/sample'
user = 'some_user'
password = 'secret'
....
============ jdbc 连接信息应该是硬编码的,如图所示。 但我想要一个基于外部服务器设置的动态 jooq 设置。 一般来说,动态数据源生成方法已经在使用中。
帮助! 很抱歉我不会说英语。
【问题讨论】:
您始终可以使用手册中记录的编程代码生成配置:jooq.org/doc/latest/manual/code-generation/codegen-programmatic、jooq.org/doc/latest/manual/code-generation/codegen-gradle,但这可能会阻止使用一堆有用的 Gradle 构建功能... 【参考方案1】:您可以在配置类中构建数据源,而不是在 application.yml 中硬编码值。像这样的:
@Bean
private DataSource buildDataSource()
final BasicDataSource dataSource = new BasicDataSource();
dataSource.setUrl(env.getProperty("dataSource.url")+ "_somevalue");
dataSource.setUsername(env.getProperty("dataSource.username"));
dataSource.setPassword(env.getProperty("dataSource.password"));
return dataSource;
所以你可以使用一些逻辑来定义数据源 url、用户名、密码。
【讨论】:
在 jooq =========== jooq version = '3.11.2' sample (sourceSets.main) jdbc driver = 'org.postgresql.Driver' url = 'jdbc: postgresql: // localhost: 5432 / sample' user = 'some_user' password = 'secret' ...... =========== jdbc连接信息应该硬编码为显示。但我想要一个基于外部服务器设置的动态 jooq 设置。一般来说,动态数据源生成方法已经在使用中。以上是关于我想在数据库环境是动态的服务器上使用 jooq的主要内容,如果未能解决你的问题,请参考以下文章
Spring boot、JOOQ和Flyway如何一起使用?