МойБатис
![]() | |
Разработчик(и) | Команда MyBatis |
---|---|
Стабильная версия | 3.5.16 [ 1 ] ![]() |
Репозиторий | |
Написано в | Ява |
Операционная система | Кросс-платформенный |
Тип | Структура сохранения |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | www ![]() |
MyBatis — это Java платформа персистентности , которая связывает объекты с хранимыми процедурами или операторами SQL с помощью дескриптора XML или аннотаций.
MyBatis — бесплатное программное обеспечение , распространяемое по лицензии Apache License 2.0.
MyBatis является ответвлением iBATIS 3.0 и поддерживается командой, в которую входят первоначальные создатели iBATIS .
Краткое описание функций
[ редактировать ]В отличие от фреймворков ORM , MyBatis не сопоставляет Java объекты с таблицами базы данных , а методы Java с операторами SQL .
MyBatis позволяет вам использовать все функции вашей базы данных, такие как хранимые процедуры, представления , запросы любой сложности и собственные функции поставщиков. Часто это хороший выбор для устаревших или денормализованных баз данных или для получения полного контроля над выполнением SQL.
Он упрощает кодирование по сравнению с JDBC . Операторы SQL выполняются в одну строку.
MyBatis предоставляет механизм сопоставления, который декларативно сопоставляет результаты SQL с деревьями объектов.
Операторы SQL можно создавать динамически с помощью встроенного языка с синтаксисом, подобным XML, или с помощью Apache Velocity с использованием подключаемого модуля интеграции Velocity.
MyBatis интегрируется с Spring Framework и Google Guice . Эта функция позволяет создавать бизнес-код без зависимостей.
MyBatis поддерживает декларативное кэширование данных. Оператор может быть помечен как кэшируемый, поэтому любые данные, полученные из базы данных, будут храниться в кеше, и будущие выполнения этого оператора будут извлекать кэшированные данные, а не обращаться к базе данных. MyBatis предоставляет реализацию кэша по умолчанию на основе Java HashMap и коннекторов по умолчанию для интеграции с: OSCache , Ehcache , Hazelcast и Memcached . Он предоставляет API для подключения других реализаций кэша.
Использование
[ редактировать ]Операторы SQL хранятся в XML- файлах или аннотациях. Ниже изображен сопоставитель MyBatis, состоящий из интерфейса Java с некоторыми аннотациями MyBatis:
package org.mybatis.example;
public interface BlogMapper {
@Select("select * from Blog where id = #{id}")
Blog selectBlog(int id);
}
Приговор исполняется следующим образом.
BlogMapper mapper = session.getMapper(BlogMapper.class);
Blog blog = mapper.selectBlog(101);
Операторы и сопоставления SQL также можно экспортировать в XML-файл следующим образом.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
<select id="selectBlog" parameterType="int" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
Операторы также можно выполнять с помощью API MyBatis.
Blog blog = session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);
Подробную информацию см. в руководстве пользователя, доступном на сайте MyBatis. Смотрите внешние ссылки.
Весенняя интеграция
[ редактировать ]MyBatis интегрируется с Spring Framework . Этот модуль позволяет MyBatis участвовать в транзакциях Spring. Он также создаст преобразователи и сеансы MyBatis и внедрит их в другие компоненты.
В следующем примере показана базовая конфигурация XML, которая устанавливает преобразователь и внедряет его в компонент «BlogService».
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="blogMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
<property name="mapperInterface" value="org.mybatis.example.BlogMapper" />
</bean>
<bean id="blogService" class="org.mybatis.example.BlogServiceImpl">
<property name="blogMapper" ref="blogMapper" />
</bean>
Вызов MyBatis теперь просто вызывает компонент:
public class BlogServiceImpl implements BlogService {
private BlogMapper blogMapper;
public void setBlogMapper(BlogMapper blogMapper) {
this.blogMapper = blogMapper;
}
public void doSomethingWithABlog(int blogId) {
Blog blog = blogMapper.selectBlog(blogId);
...
}
}
Язык скорости
[ редактировать ]Драйвер языка Velocity позволяет использовать Apache Velocity для создания динамических запросов SQL на лету.
<select id="findPerson" lang="velocity">
#set( $pattern = $_parameter.name + '%' )
SELECT *
FROM person
WHERE name LIKE @{pattern, jdbcType=VARCHAR}
</select>
Генератор MyBatis
[ редактировать ]MyBatis предоставляет генератор кода. MyBatis Generator проанализирует таблицу базы данных (или несколько таблиц) и сгенерирует артефакты MyBatis, необходимые для выполнения CRUD операций (создание, получение, обновление, удаление).
Eclipse . Доступен плагин
Он сохранит любой пользовательский код в случае регенерации, но только если вы используете плагин Eclipse.
MyBatis Миграции
[ редактировать ]Java MyBatis Migrations — это инструмент командной строки , который отслеживает изменения схемы базы данных, управляя файлами DDL (так называемые миграции ).
Миграции позволяют запрашивать текущее состояние базы данных, применять изменения схемы, а также отменять их. Это также помогает обнаруживать и устранять одновременные изменения схемы базы данных, внесенные разными разработчиками.
История
[ редактировать ]Проект MyBatis является дочерней компанией iBATIS 3.0 и поддерживается командой, в которую входят первоначальные создатели iBATIS.
Проект был создан 19 мая 2010 года, когда был опубликован Apache iBATIS 3.0, и команда объявила, что разработка продолжится под новым именем и в новом доме в Google Code. [ 2 ]
См. также
[ редактировать ]- Спящий режим
- Скорость
- Подключение к базе данных Java (JDBC)
- API сохранения Java
- ЗатмениеСсылка
- Эбин
- jOOQ
- Апач Кайенна
- IBM Чистый запрос
- nГидрат
- Апач OpenJPA
- АктивJPA
Ссылки
[ редактировать ]- ^ «Выпуск 3.5.15» . 4 апреля 2024 г. Проверено 9 июля 2024 г.
- ^ Команда проекта iBATIS переходит на Google Code
- ^ Пока, Google Code, добро пожаловать Github