Источник данных Spring и схема базы данных

Я пытаюсь объявить источник данных Spring, указывающий на базу данных DB2. В настоящее время я использую org.springframework.jdbc.datasource.DriverManagerDataSource для настройки соединения, но не могу найти способ указать схему базы данных в базе данных в bean-источнике данных. Может ли кто-нибудь помочь мне в этом?

3 ответа

Решение

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

Обходной путь - установить схему как часть URL базы данных...

Для db2 URL будет выглядеть примерно так:

JDBC:db2://SERVER_NAME:PORT/ БАЗА ДАННЫХ: CurrentSchema=SCHEMA_NAME;

надеюсь, это поможет...

Особое примечание: обязательно добавьте точку с запятой; в конце URL-адреса, в противном случае вы получите сообщение о недействительности URL-адреса. Также убедитесь, что ничего после последнего; существует (даже не пробелы).

Для этого нет стандартного пространства имен Spring. Ответ Роба Харропа на запрос о добавлении схемы в конфигурацию:

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

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

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

Мы использовали UserCredentialsDataSourceAdapter, предоставленный Spring, для подключения к различным схемам, основанным на вошедшем в систему пользователе. Это обеспечивает источник данных, который указывает на конкретную схему, основанную на пользователе. При этом используется информация для входа в поток. Каждый поток должен решить, к какой схеме он должен подключиться, и предоставить пользователю в соответствии с этим.

Другие вопросы по тегам