我需要知道从多个数据库访问存储库和实体类的简单步骤。 示例:我必须从单个服务请求访问 DB1 中的 User 表和 DB2 中的电子邮件。 / p>
spring.datasource.url = jdbc:mysql://localhost:3306/dbName1?useSSL=false
spring.datasource.username = user
spring.datasource.password = password
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.hibernate.ddl-auto = update
spring.datasource.url = jdbc:mysql://localhost:3306/dbName2?useSSL=false
spring.datasource.username = user
spring.datasource.password = password
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.jdbc.batch_size=20
spring.jpa.properties.hibernate.order_inserts=true
spring.jpa.properties.hibernate.order_updates=true
spring.jpa.properties.hibernate.jdbc.batch_versioned_data=true
spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=100MB
答案 0 :(得分:1)
解决方案1:
您可以创建一个有权访问两个数据库的用户,然后在查询外部表时使用完全限定的表名。
MySQL支持dbname.tablename语法来访问当前数据库范围之外的表。
这要求当前连接的用户具有适当的权限,才能从另一个物理数据库中的请求表中读取数据。
解决方案2:
您可以按照此处所述配置两个数据源:
答案 1 :(得分:1)
(不是直接答案。)
如果您要使用的语言不是普通英语,请考虑以下设置:
休眠XML:
<property name="hibernate.connection.CharSet">utf8mb4</property>
<property name="hibernate.connection.characterEncoding">UTF-8</property>
<property name="hibernate.connection.useUnicode">true</property>
连接网址:
db.url=jdbc:mysql://localhost:3306/db_name?useUnicode=true&character_set_server=utf8mb4
答案 2 :(得分:0)
@Table(name="tablename", catalog="db2")
为我工作