2017-01-23 12 views
2

Это довольно прямолинейно с простым подходом Spring DAO. Однако, используя MyBatis, есть ли способ настроить несколько потенциальных источников данных?MyBatis Spring DYNAMIC количество нескольких баз данных Конфигурация Java

Лучший подход, который я могу думать о том, чтобы использовать ArraList боба каждый из которых содержит datasource.driverclass, datasource.url, datasource.username, datasource.password и т.д.

Значения для источников данных хранятся в отдельные файлы свойств. Может быть 1 или 10 из этих файлов свойств (или более).

Так, например, при запуске одного приложения все файлы свойств будут загружаться по одному в ArrayList. Затем, основываясь на строке NAME = value из файла свойств, мы будем знать, какой источник данных должен ударить.

Так HTTP: локальный: 8080/имя = DB1

... доступ будет все данные из источника данных сконфигурированного с именем "09". Каждый файл собственности будет содержать:

name=db1 
datasource.driverclass=jdbc:sqlserver 
datasource.url=jdbc:sqlserver://localhost:1433;databaseName=someDBname 
datasource.username=user1 
datasource.password=pass1 

Таким образом, идентификатор здесь «name = db1».

Будет ли лучший подход от реализации MyBatis использовать ArrayList из Beans?

+0

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

+0

, пожалуйста, отредактируйте свой вопрос, чтобы рассказать нам больше о контексте, чего вы пытаетесь достичь? почему вы используете несколько источников данных? все с той же схемой? такие же данные? – blackwizard

+0

@ Кайаман - это точно план, многопользовательское решение. Любые предложения, которые, по вашему мнению, будут лучше работать в этой ситуации? – SiriusBits

ответ

0

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

1

Вот некоторые выводы, если вы хотите идти в ногу с несколькими БД:

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

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

И для каждого пользовательского запроса или сеанса (в случае веб-приложения) конфигурация будет проанализирована, потому что необходимо вызывать SqlSessionFactoryBuilder.build(reader, environment=NAME); для выбора среды (=> БД).