如何从反应式 MariaDB 连接创建 JOOQ DSLContext

Posted

技术标签:

【中文标题】如何从反应式 MariaDB 连接创建 JOOQ DSLContext【英文标题】:How do I create JOOQ DSLContext from reactive MariaDB connection 【发布时间】:2021-07-22 23:53:55 【问题描述】:

JOOQ 手册规定如下:

开箱即用,所有 jOOQ 提供的发布者都会在 底层 JDBC 连接,但如果您为 jOOQ 提供 io.r2dbc.spi.Connection 或 io.r2dbc.spi.ConnectionFactory,然后 发布者将在 R2DBC 上以非阻塞方式执行查询 司机。

如何为 DSLContext 提供 io.r2dbc.spi.Connection 或 io.r2dbc.spi.ConnectionFactory ?

我试过 DSL.using() 但它不接受这个接口。

另外 - 我可以通过 Spring Boot 使用响应式驱动程序定义 DSLContext 吗?

谢谢。

【问题讨论】:

【参考方案1】:

如何为 DSLContext 提供 io.r2dbc.spi.Connection 或 io.r2dbc.spi.ConnectionFactory ?

在提出这个问题时,jOOQ 3.14 还不支持 R2DBC。使用 jOOQ 3.15,你可以这样写:

DSLContext ctx1 = DSL.using(connection);
DSLContext ctx2 = DSL.using(connectionFactory);

就像 JDBC 连接一样。

另外 - 我可以通过 Spring Boot 使用响应式驱动程序定义 DSLContext 吗?

我怀疑一旦 jOOQ 3.15 发布(~ 2021 年第二季度末,没有承诺),这将成为可能。在那之前,只需公开一个 DSLContext 类型的 @Bean,您可以从注入的 ConnectionFactory 手动构建它

【讨论】:

以上是关于如何从反应式 MariaDB 连接创建 JOOQ DSLContext的主要内容,如果未能解决你的问题,请参考以下文章

jooq无法在游戏中生成类 - scala

如何修复:Jooq 代码不会从 sql 脚本为内存 db 中的 sqlite 生成 java 代码

如何在jooq查询的左连接中检查记录是不是完​​全为空

jOOQ:从连接返回三个对象的列表

使用 gradle 的 JOOQ 连接池

如何正确处理与 jooq 的连接?