MyBatis като по-бърза алтернатива за хибернация

В общността на Java рамката Hibernate се счита за де факто стандарт за лесно управление на базата данни. За разработчика е трудно да избере друга рамка, защото понякога той не знае за съществуването на алтернативи. В тази статия ще преподавам курс на млад боец ​​за работа с рамката MyBatis. Няма да е възможно да се обхване изцяло цялата рамка, но ще има достатъчно информация, за да се видят предимствата и слабостите на тази рамка и да се започне работа с MyBatis.

MyBatis не прилага спецификации на JPA, но е алтернатива на JPA. Основната разлика между MyBatis и Hibernate е как се картографират обектите. Hibernate картографира таблиците на базата данни на обекти, като ни дава достъп до данни. За да получи данни, Hibernate генерира SQL заявки и генерираните заявки засега са добри и след това изяждат много време, стават тромави и излизат извън контрол. MyBatis се свързва не с таблици, а с SQL заявки, разработчикът е отговорен за формирането на заявки и само той ще определи колко бързо ще работи приложението.

Завършихме с преамбюла, сега можете директно да създадете малък проект с помощта на MyBatis, за да го опознаете по-добре. Няма да бъда оригинален, ще направим няколко запитвания към базата данни, използвайки MyBatis. В примера ще използвам MySQL СУБД, а вие можете да използвате всяка друга СУБД, която ви харесва.

Нека създадем базата данни mybatis:

Създаване на таблици абонат, тарифа, плащания:

Най-скучното нещо е отзад - имаме база данни, от която ще получаваме данни, сега ще започнем да работим директно с MyBatis. Първо, имаме нужда от библиотеката MyBatis. За да получим библиотеката, ще използваме maven, трябва да добавите зависимостта към настройките на проекта (pom.xml):

По време на писането на настоящата версия, последната версия на MyBatis е 3.2.8

След като библиотеката се зареди успешно, трябва да конфигурирате връзката с базата данни. Настройките се извършват в конфигурационния файл mybatis-config.xml.

По-долу е даден списък на конфигурационния файл:

В списъка по-горе посочих 3 картографа - цялото взаимодействие с базата данни ще се осъществява чрез картографиране и колкото по-подробно разбирате как да работите с картографиращи и формулярни заявки, толкова по-ефективни ще бъдат вашите приложения.

За коректна работа с MyBatis трябва да създадете интерфейс за картографиране, в който методите, които ще се използват, ще бъдат предварително дефинирани и xml файлът с настройки, в който ще бъдат описани sql заявки, правилата за тяхното картографиране към обекти и т.н.

Нека създадем интерфейса kz.jazzsoft.mapper.SubscriberMapper:

В този интерфейс дефинирахме два метода:

1. getSubscriberById - ще върне един потребител по id;