Інтеграція MyBatis та Spring 3.x
Рішення Бібліотка MyBatis раніше називалася iBatis і мала вбудовану підтримку у Spring. Але у зв'язку з великими змінами MyBatis порівняно з iBatis, фреймворк Spring, починаючи з версії 3.0 відмовився від вбудованої підтримки даної бібліотеки. Тому силами команди MyBatis було створено додатковий інтеграційний проект MyBatis-Spring.
Таким чином, в першу чергу потрібно підключити до проекту, крім основної бібліотеки MyBatis, додаткову бібліотеку MyBatis-Spring. Слід звернути увагу на те, що різні версії MyBatis вимагають різних версій інтеграційної бібліотеки. Відповідність версій наведена у таблиці:
Під час використання Maven підключення бібліотек залежностей виглядатиме так:
Для роботи з базою даних MyBatis використовує об'єкт сесії org.apache.ibatis.session.SqlSession, який одержують із фабрики сесій org.apache.ibatis.session.SqlSessionFactory. Для конфігурації фабрики сесії бібліотека MyBatis-Spring надає класorg.mybatis.spring.SqlSessionFactoryBean, на основі даного класу потрібно створити бін у контексті програми :
У даного бина обов'язковим для заповнення є властивість dataSource. У той же час корисними для заповнення є властивість типуAliasesPackage. Дана властивість визначає ім'я пакета в якому розташовані сутності для більш короткого іменування сутностей. Наприклад, замість повного імені класу ru.javacore.entity.MyObj у мепері можна буде вказувати MyObj.
Далі слід оголосити бін для мепера. Наприклад, ми маємо інтерфейс мепера MyMapper:
Бібліотека MyBatis-Spring надає фабрику меперівorg.mybatis.spring.mapper.MapperFactoryBean, яка на основі інтерфейсу мепера створює об'єкт. Як властивості бинаслід вказати інтерфейс та фабрику сесій:
Далі створений БІН можна використовувати для безпосередньої роботи з базою даних: