我可以将 JOOQ 生成的代码用于另一个数据库模式吗?
Can I use JOOQ generated code against another DB schema?
我正在使用 JOOQ 访问 Rails 数据库,如您所知,Rails 具有三个数据库模式,"test"、"development" 和 "production".我们暂时将这些模式称为 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 数据库?
我不知道如何进行。
显然您可以在运行时更改映射的数据库。
https://www.jooq.org/doc/latest/manual/sql-building/dsl-context/runtime-schema-mapping/
我在文档中完全错过了这一点。不过还是感谢大家的帮助...
我正在使用 JOOQ 访问 Rails 数据库,如您所知,Rails 具有三个数据库模式,"test"、"development" 和 "production".我们暂时将这些模式称为 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 数据库?
我不知道如何进行。
显然您可以在运行时更改映射的数据库。
https://www.jooq.org/doc/latest/manual/sql-building/dsl-context/runtime-schema-mapping/
我在文档中完全错过了这一点。不过还是感谢大家的帮助...