Jak podłączyć cosmosDB to JDBC Template bez hasła i username

0

Cześć wszystkim. Jak można podłączyć bazę danych CosmosDB do Spring JDBC Template, jeżeli mam tylko URL, KEY i DATABASE_NAME.

Potrzebuję użyć ResultSet przez JDBC Template żeby wyciągnąć jakieś dane z cosmosa, natomiast, jdbc prosi o configurację datasource. Próbowałem to zrobić, natomiast nie mam nawet cosmos driver (wszędzie znajduję tylko azure sql driver, czyli nie cosmos), no i nie ma hasła i username. jak można to skonfigurować w takim przypadku?

I dodatkowe pytanie, może jest jakiś inny sposób na dostanie ResultSet nie przez JDBC Template?

3
  1. ResultSet to raczej coś co przychodzi z gołego JDBC a nie ze Springowego JDBC Template, który to generalnie zakłada że podajesz jakiegoś RowMappera który zamienia result set w DTO
  2. Google mówi ze CosmosDB to jest jakaś baza danych hostowana przez Azure.
  3. https://docs.microsoft.com/en-us/azure/cosmos-db/sql/sql-api-sdk-java-v4 sugeruje że istnieje jakieś SDK, ale MS nie udostępnia drivera pod JDBC
  4. Google sugeruje że są jakieś płatne drivery JDBC third-party (ktoś potrzebował i napisał driver pod JDBC używając pod spodem SDK od MS pewnie)
2

2)Czyli bazy danych CosmosDB, Cassadra i inne, które są na Azure, mają driver azura, a nie dla każdej bazy danych własny? 3)I co to oznacza dla JDBC template? Bo ja już skonfigurowałem resultSet, natomiast brakuję podłaczenia do DataSource dla JDBC Template. Można z tym SDK coś takiego uczynić?

Podejrzewam, że zrobiłeś ciche założenie, że do każdej bazy danych (nawet niekoniecznie relacyjnej) jesteś w stanie połączyć się poprzez driver zgodny z JDBC. Tak niestety nie jest - Mongo ma swój driver, Cassandra i CosmosDb rownież (najwidoczniej, nie mam doświadczenia). Dlaczego chcesz komunikować się z Cosmesem poprzez JdbcTemplate, a nie w jego „naturalnym języku”? To może być kwestia prostego przerobienia aplikacji, bo i tak kod domenowy nie powinien wiedzieć o JdbcTemplate czy ResultSecie - ukryj to za adapterem.

5

Podejrzewam, że zrobiłeś ciche założenie, że do każdej bazy danych (nawet niekoniecznie relacyjnej) jesteś w stanie połączyć się poprzez driver zgodny z JDBC.

No właśnie, a przecież CosmosDB to baza nieralacyjna. Ja bym skorzystał z oficjalnego SDK.

1 użytkowników online, w tym zalogowanych: 0, gości: 1