Источник данных Spring и схема базы данных - PullRequest
4 голосов
/ 08 августа 2009

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

Ответы [ 3 ]

12 голосов
/ 08 августа 2009

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

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

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

jdbc:db2://SERVER_NAME:PORT/DATABASE:currentSchema=SCHEMA_NAME;

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

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

2 голосов
/ 08 августа 2009

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

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

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

0 голосов
/ 11 августа 2009

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

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

...