w , ,

FajneFajne Dobre!Dobre! ŚwietnieŚwietnie

MyBatis – lekka i wydana alternatywa dla Hibernate

MyBatis - Java persistence framework

MyBatis to Java persistence framework, który nastawiony jest na wydajność. W przeciwieństwie do Hibernate nie jest to framework obiektowo-relacyjny, lecz pozwalający na mapowanie metod na instrukcje SQL.
Cechuje go również prostota użytkowania i implementacji. Również każdy, kto ma uprzedzenie do nadmiernego stosowania adnotacji w Spring na pewno się ucieszy 😉

Gdzie MyBatis najlepiej się sprawdzi?

  • gdy zależy nam na wydajności;
  • do wykonywania operacji masowego wstawiania danych;
  • do rozwiązań dokonujących operacji pomiarowych, mających osiągnąć wydajny zapis wielu rekordów w krótkim odstępie czasowym;
  • kiedy nie chcemy korzystać z ORM;
  • kiedy chcemy osiągnąć wydajność zbliżoną do JDBC, natomiast zależy nam na prostym, czytelnym kodzie.

Porównanie wydajności MyBatis vs Hibernate vs JDBC

Wykonałem proste porównanie trzech aplikacji, które odpowiadały za dodawanie i pobieranie 1000 rekordów komunikując się z lokalną bazą danych H2. Każda z aplikacji implementowała różne podejścia:

Zapis

JDBC MyBatis Hibernate
próba 132 ms87 ms121 ms
próba 218 ms24 ms47 ms
próba 313 ms15 ms38 ms
próba 410 ms16 ms34 ms
próba 510 ms11 ms42 ms

Średnio:

  • MyBatis wydajniejsze od Hibernate o 46%
  • JDBC wydajniejsze od Hibernate o 71%
  • JDBC wydajniejsze od MyBatis o 46%

Odczyt

JDBC MyBatis Hibernate
próba 16 ms11 ms100 ms
próba 20 ms3 ms5 ms
próba 30 ms2 ms5 ms
próba 41 ms2 ms3 ms
próba 50 ms1 ms3 ms

Średnio:

  • MyBatis wydajniejsze od Hibernate o 84%
  • JDBC wydajniejsze od Hibernate o 94%
  • JDBC wydajniejsze od MyBatis o 63%

Przykład implementacji MyBatis w Spring Boot

Na swoim kanale YouTube demonstruje w jaki sposób zaimplementować rozwiązanie wykorzystujące ten framework:

Kod aplikacji

Przykładowa aplikacja pozwalająca na zapis elementów do bazy danych z wykorzystaniem prostego API jest dostępna na moim repozytorium:

https://github.com/bykowski/spring-boot-mybaits

Wnioski

Opisane rozwiązanie stanowi stanowi ciekawą alternatywę dla wymagających frameworków mapowania obiektowo-relacyjnego. Jego dużą zaletą jest wysoka kontrolą wszystkich zapytań. Dlatego warto przyjrzeć się temu rozwiązaniu, zwłaszcza, że tworzony kod w nim jest schludny i czytelny.

A może Tobie udało się mieć styczność z tym rozwiązaniem? Jakie jaką masz o nim opinie? Koniecznie podziel się w komentarzu 😉

Napisane przez Przemysław Bykowski

Aktywny programista i energiczny trener. Specjalizuje się w Spring Boot i uczę go w ramach AkademiaSpring.pl. Po godzinach udzielam się na YouTubach. Więcej o mnie.

Dodaj komentarz

wzorce projektowe szkolenie

Praktyczne wykorzystanie wzorców projektowych – webinar charytatywny

pensja programisty 2020

Programisto! Musisz mieć podwyżkę w tym roku!