Несколько баз данных в Spring-Boot с mariaDB - PullRequest
0 голосов
/ 11 сентября 2018

Мне нужно знать простые шаги для доступа к репозиторию и классам сущностей из нескольких баз данных. Пример: у меня есть Пользователь таблица в DB1 и Электронная почта в DB2 должен получить доступ из одного запроса на обслуживание.

БД 1

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

DB 2

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

Ответы [ 3 ]

0 голосов
/ 13 сентября 2018
@Table(name="tablename", catalog="db2")

работал для меня

0 голосов
/ 03 октября 2018

(не прямой ответ.)

Если вы будете использовать текст, отличный от простого английского, рассмотрите следующие параметры:

Hibernate XML:

<property name="hibernate.connection.CharSet">utf8mb4</property>
<property name="hibernate.connection.characterEncoding">UTF-8</property>
<property name="hibernate.connection.useUnicode">true</property>

СоединениеURL:

db.url=jdbc:mysql://localhost:3306/db_name?useUnicode=true&character_set_server=utf8mb4
0 голосов
/ 11 сентября 2018

Решение 1:

Вы можете создать пользователя, который имеет доступ к обеим базам данных, а затем использовать полные имена таблиц при запросах к внешней таблице.

MySQL поддерживает синтаксис dbname.tablename для доступа к таблицам вне текущей области базы данных.

Для этого требуется, чтобы текущий подключенный пользователь имел соответствующие права на чтение из запрошенной таблицы в другой физической базе данных.

Решение 2:

Выможно настроить два источника данных, как описано здесь:

https://docs.spring.io/spring-boot/docs/current/reference/html/howto-data-access.html#howto-two-datasources

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...