Динамическое подключение к различным базам данных с помощью весенней загрузки - PullRequest
0 голосов
/ 02 июля 2019

Как я могу подключиться к нескольким базам данных, которые не идентичны на лету (загрузка типа и информации о соединении БД из моей БД) с помощью Spring?

what I am trying to build?
I am building a Spring-Boot application that should be able to get data from my customers in the following ways:
1. Connect to my customer SQL DB (MySQL, MSSQL, PostgreSQL,etc...)
2. connect to my customer MongoDB,
3. read data from CSV/JSON files.

Когда приложение работает, оно получает HTTP-запрос с идентификатором клиента.подключиться к.на этом этапе приложение должно загрузить этого клиента из моей БД (которая содержит именно ту БД, которую он использует, и учетные данные для подключения к ней) и установить соединение с этой БД, чтобы иметь возможность начать запросить ее.( Схемы БД отличаются от одного клиента к другому, поэтому я также поддерживаю набор запросов в своей БД для запроса клиента )

Я изо всех сил пытаюсь реализовать синюю часть диаграммы:

I'm struggling to implement the blue part of the diagram

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

Можно создать JdbcTemplate на лету для запроса базы данных MySQL. В следующем примере показано, как это сделать:

DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://host:port/database");
dataSource.setUsername("username");
dataSource.setPassword("password");

JdbcTemplate template = new JdbcTemplate(dataSource);
SqlRowSet sqlRowSet = template.queryForRowSet("SELECT FOO FROM BAR;");

Аналогичный подход можно использовать для работы с MongoDB - создайте MongoTemplate для работы с данными. Другой способ - использовать встроенную библиотеку MongoDB. Здесь вы можете найти больше информации о том, как его использовать.

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

0 голосов
/ 03 июля 2019

Вы можете настроить несколько источников данных в вашем приложении. Все, что вам нужно, это упомянуть их driverClassName connectionUrl username password. Вы можете найти пример здесь

PS: не забудьте упомянуть их зависимости

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