반응형
Maria를 사용한 스프링 부트에서의 다중 데이터베이스DB
다중 데이터베이스에서 리포지토리 및 엔티티 클래스에 액세스하는 간단한 단계를 알아야 합니다.예:DB1에 사용자 테이블이 있고 DB2에 이메일이 있는 경우 단일 서비스 요청에서 액세스해야 합니다.
DB 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
DB2
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
해결책 1:
두 데이터베이스에 모두 액세스할 수 있는 사용자를 작성한 후 외부 테이블을 쿼리할 때 완전한 테이블 이름을 사용할 수 있습니다.
MySQL은 dbname.tablename 구문을 지원하여 현재 데이터베이스 범위 밖의 테이블에 액세스합니다.
이렇게 하려면 현재 연결된 사용자가 다른 물리적 DB에 있는 요청된 테이블에서 읽을 수 있는 적절한 권한이 있어야 합니다.
해결책 2:
다음의 설명에 따라서, 2개의 데이터 소스를 설정할 수 있습니다.
(직답은 아닙니다).
일반 영어 이외의 텍스트를 사용하는 경우는, 다음의 설정을 고려해 주세요.
최대 절전 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
@Table(name="tablename", catalog="db2")
나를 위해 일했다
언급URL : https://stackoverflow.com/questions/52270332/multiple-databases-in-spring-boot-with-mariadb
반응형
'IT' 카테고리의 다른 글
Windows에서 MySQL 또는 MariaDB 서버를 실행하기 위한 최소 파일 - (Portable MySQL/MariaDB) (0) | 2023.01.21 |
---|---|
PHP의 정수 인덱스를 사용하여 연결 배열 액세스 (0) | 2023.01.21 |
디렉토리가 존재하지 않는 경우는, 그 디렉토리에 파일을 작성합니다. (0) | 2023.01.21 |
JavaScript 개체 변수에 추가할 동적 키를 만들려면 어떻게 해야 합니까? (0) | 2023.01.21 |
PHP에서 복수 또는 단수를 사용하여 어레이 이름을 지정합니까? (0) | 2023.01.21 |