Biblioteka do baz danych

0

Trochę wypadłem z obiegu jeśli chodzi o połączenie z bazami danych - ale w końcu przyszedł czas odkurzyć trochę wiedzę.

Mam taki use-case, że będę musiał wołać co jakiś czas procedurę bazodanową - MSSQL lub Oracle. Pytanie - jak to zrobić?

  1. Mapowanie mogę robić ręcznie, ale nie chciałbym pisać od nowa API do łączności z bazą danych.
  2. Fajnie, żeby łatwo dało się podmienić konfigurację (tj. zamieniam gdzieś w konfiguracji info jak łączyć się z MSSQL na Oracle i ewentualnie zmieniam zapytania - i wszystko działa).
  3. Nie chcę do tego zaprzęgać żadnego JPA
  4. Mogę pisać statementy ręcznie, nie muszę mieć żadnego ogarniacza query.

Tak na szybko przeszukałem cały internet i wyszło mi:

  • jOOQ
  • Querydsl
  • JdbcTemplate z Springa

Korzystał ktoś? Jakieś przemyślenia? Może lepsze propozycje?

5
  • JOOQ najlepsze bo daje typowanego SQLa. Używałem w pracy
  • Querydsl jest podobne do JOOQ, ale chyba umarło
  • JDBI lepsza wersja JdbcTemplate, bo bez springa. Używałem tylko hobbystycznie
1

QueryDSL jest ok, jedyna upierdliwa rzecz to że scheme generuje na podstawie bazy i trzeba robić fikołki zeby to zrobić z gołego SQLa. Plus jest taki że masz type-safe queries. Minus że trzeba jakieś pluginy mavenowe/gradlowe do generowania klas.
Jeśli w projekcie masz już Springa to JDBCTeplate jest spoko. Jeśli nie masz to JDBI jest spoko.
Problem z jOOQ jest taki, że chcą szekle i nie podmienisz sobie łatwo bazy z jednej na drugą, bo np. MSSQL już kosztuje $. To jest generalnie taki lepszy, płatny QueryDSL.

0
Shalom napisał(a):

Problem z jOOQ jest taki, że chcą szekle i nie podmienisz sobie łatwo bazy z jednej na drugą, bo np. MSSQL już kosztuje $. To jest generalnie taki lepszy, płatny QueryDSL.

Twórcy JOOQ wychodzą z założenia że jeśli stać cię na płatną bazę to stać cię też na JOOQ. Za darmo są Derby, Firebird, H2, HSQLDB, MariaDB, MySQL, PostgreSQL, SQLite Zródło

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