Java jooQ spring引导多模式(读写分离)

Java jooQ spring引导多模式(读写分离),java,sql,spring-boot,jooq,Java,Sql,Spring Boot,Jooq,我想用jooQ和弹簧靴。我有主从式架构,所以我想使用jooQ和主从式架构(主用于写,从用于读) 我该如何进行。现在我使用pom.xml来配置jooQ com.mysql.jdbc.Driver ${datasource.primary.url} ${datasource.primary.username} ${datasource.primary.password} org.jooq.util.DefaultGenerator org.jooq.util.mysql.MySQLDatabase

我想用jooQ和弹簧靴。我有主从式架构,所以我想使用jooQ和主从式架构(主用于写,从用于读)

我该如何进行。现在我使用pom.xml来配置jooQ


com.mysql.jdbc.Driver
${datasource.primary.url}
${datasource.primary.username}
${datasource.primary.password}
org.jooq.util.DefaultGenerator
org.jooq.util.mysql.MySQLDatabase
.*
jpa
假的
com.gensrc.model
src/main/java
然后自动连接DSL上下文

但是我现在如何更改代码。

从您的评论中:

我想将所有写查询路由到主查询,将所有读查询路由到从查询

我不太确定写=主,读=从之间的严格区分是否是一个好主意。有时,您可能还需要在相同的事务边界内从主机读取数据(即,读回未提交的数据),如果将读取查询发送到从机,则会产生错误的结果

因此,实现此路由的最佳位置是拥有单独的
数据源
实例,并将它们相应地注入到jOOQ中。然后,您将在服务层显式地、透明地为jOOQ分离主服务器和从服务器


当然,您可以通过使用jOOQ并根据查询类型()为jOOQ提供正确的JDBC
连接来实现您最初的需求,但我认为这很快就会中断。

您到底想做什么?我怀疑您有两个用户或模式或数据库(一个用于编写,一个用于阅读),但它们之间的关系如何,您希望jOOQ做什么“但我现在如何更改代码”-你指的是什么代码?我在两台不同的服务器上有两个不同的数据库。两者都是彼此的复制品。一个用于读取(从),另一个用于写入(主)。我想将所有的写查询路由到master,所有的读查询路由到slave。是的,我知道这种方法基本上是创建两个数据源,然后注入到jooQ中。但如何将数据源注入到jooQ中呢。我目前正在自动连接正在获取主要数据源的DSLContext。我尝试使用@Qualifier初始化DSLContext,但它没有得到初始化。您可以共享相同的代码吗?是的,这是使用master进行读写交易的常见场景,如果我能够将数据Soucre注入JooQ DSLContext,也可以这样做。@AnkitBansal:您有很多问题:),但它们都不在您的实际问题文本中。您介意为您的每个问题陈述提出一个关于堆栈溢出的新问题吗?如果有疑问,这里有一个方便的页面解释堆栈溢出的工作原理: