복붙노트

[SPRING] Spring 데이터 소스 및 데이터베이스 스키마

SPRING

Spring 데이터 소스 및 데이터베이스 스키마

DB2 데이터베이스를 가리키는 Spring 데이터 소스를 선언하려고합니다. 현재 org.springframework.jdbc.datasource.DriverManagerDataSource를 사용하여 연결을 설정하고 있지만 데이터 소스 빈의 데이터베이스에서 데이터베이스 스키마를 지정하는 방법을 찾지 못했습니다. 아무도 이걸 도와 줄 수 없습니까?

해결법

  1. ==============================

    1.문제는 스키마를 설정하는 표준 방법이 없다는 것입니다. 각 데이터베이스에는 다른 메커니즘이 있습니다.

    문제는 스키마를 설정하는 표준 방법이 없다는 것입니다. 각 데이터베이스에는 다른 메커니즘이 있습니다.

    해결 방법은 db url의 일부로 스키마를 설정하는 것입니다.

    db2의 경우 url은 다음과 같습니다.

    도움이되는 희망 ...

    특별 참고 사항 : 세미콜론을 추가하십시오. 그렇지 않으면 URL이 유효하지 않다는 오류가 표시됩니다. 또한 마지막 이후에 아무것도 확인하지 마십시오. 존재합니다 (공백이 아님).

  2. ==============================

    2.표준 Spring 네임 스페이스로이를 수행 할 방법이 없습니다. 구성에 스키마를 추가하라는 요청에 대한 Rob Harrop의 응답 :

    표준 Spring 네임 스페이스로이를 수행 할 방법이 없습니다. 구성에 스키마를 추가하라는 요청에 대한 Rob Harrop의 응답 :

    구성에서 프록시를 설정해야하는 경우 제출자는 스키마를 지정할 수있는 프록시 코드를 포함 시켰습니다.

  3. ==============================

    3.연결에서 스키마 소유자를 사용자로 사용하는 경우 해당 연결은 해당 스키마를 가리 킵니다. 즉. 사용자 user1이 schema1이라는 데이터베이스 스키마의 소유자 인 경우 사용자 user1을 사용하여 데이터베이스에 연결하면 기본적으로 연결은 schema1을 가리 킵니다.

    연결에서 스키마 소유자를 사용자로 사용하는 경우 해당 연결은 해당 스키마를 가리 킵니다. 즉. 사용자 user1이 schema1이라는 데이터베이스 스키마의 소유자 인 경우 사용자 user1을 사용하여 데이터베이스에 연결하면 기본적으로 연결은 schema1을 가리 킵니다.

    우리는 Spring에서 제공 한 UserCredentialsDataSourceAdapter를 사용하여 로그인 한 사용자를 기반으로 다른 스키마에 연결했습니다. 이것은 사용자를 기반으로 특정 스키마를 가리키는 데이터 소스를 제공합니다. 이것은 스레드 기반 로그인 정보를 사용합니다. 각 스레드는 연결할 스키마를 결정하고 그에 따라 사용자를 제공해야합니다.

  4. from https://stackoverflow.com/questions/1248474/spring-datasource-and-database-schema by cc-by-sa and MIT license