我可以将JOOQ生成的代码用于另一个数据库模式吗?

时间:2017-04-28 15:40:53

标签: java ruby-on-rails jooq

我正在使用JOOQ来访问Rails数据库,如您所知,Rails有三个数据库模式,“测试”,“开发”和“生产”。我们暂时将这些模式称为TEST,DEV和PROD。

现在我已经使用(几乎)在library.xml中的这个设置生成针对DEV的代码

<jdbc>
  <driver>com.mysql.jdbc.Driver</driver>
  <url>jdbc:mysql://<ip-address>:3306/data_dev</url>
  <user>secret</user>
  <password>secret</password>
</jdbc> 

我使用以下代码进行连接:

String url = "jdbc:mysql://" + 
    db_host + "/" + 
    db_schema + "?" + 
    "user=" + db_user + 
    "&password=" + db_pass;

conn = DriverManager.getConnection(url);
dsl = DSL.using(conn, SQLDialect.MYSQL);

现在我想针对PROD运行代码,它在结构上是相同的,但当然有生产数据。

但是,即使我将连接URL更改为架构PROD,我似乎仍然可以访问DEV?生成的代码是否硬编码到DEV数据库?

我很困惑如何继续。

1 个答案:

答案 0 :(得分:1)

显然,您可以在运行时更改映射的数据库。

https://www.jooq.org/doc/latest/manual/sql-building/dsl-context/runtime-schema-mapping/

我在文档中完全错过了这个。但是感谢所有的帮助......