Введение

iBATIS – это фреймворк персистенции, который автоматизирует сопоставление между базами данных SQL и объектами в Java, .NET и Ruby on Rails. В Java эти объекты называются POJO (Plain Old Java Objects). Сопоставления отделены от логики приложения путем размещения SQL-запросов в XML-файлах конфигурации. Это значительно сокращает объем кода, необходимого разработчику для доступа к реляционной базе данных с использованием API более низкого уровня, таких как JDBC и ODBC. Другие фреймворки персистенции, такие как Hibernate, позволяют пользователю создавать объектную модель (например, на Java) и автоматически создавать и поддерживать реляционную базу данных. iBATIS использует обратный подход: разработчик начинает с существующей базы данных SQL, а iBATIS автоматизирует создание объектов Java. Оба подхода имеют свои преимущества, и iBATIS является хорошим выбором, когда разработчик не имеет полного контроля над схемой базы данных SQL. Например, приложению может потребоваться доступ к существующей базе данных SQL, используемой другим программным обеспечением, или к новой базе данных, схема которой не полностью контролируется разработчиком приложения, например, когда схему создала и тщательно оптимизировала для высокой производительности специализированная команда разработчиков баз данных. 21 мая 2010 года команда разработчиков разветвила код, создав новый проект под названием MyBatis и начав выпускать новые релизы именно там. В результате проект Apache iBATIS стал неактивным и был перемещен в Apache Attic в июне 2010 года.

Доступность

Основатель iBATIS публично выразил своё недовольство Java 5, но продолжал выпускать новые версии iBATIS для Java. Версии 2.3.1 и 2.3.2 были выпущены в апреле 2008 года, а 2.3.3 – в июле. В настоящее время фреймворк доступен в версиях для Java, .NET и Ruby (RBatis). Проект jBati – это JavaScript ORM, вдохновлённый iBATIS. Инструмент Apache iBator тесно связан с ним: он подключается к вашей базе данных и использует её метаданные для генерации файлов маппинга iBATIS и Java-классов.

История

В 2001 году Клинтон Бегин начал проект под названием iBATIS. Первоначально основное внимание уделялось разработке программных решений в области криптографии. Первым продуктом, выпущенным iBATIS, был Secrets – инструмент для шифрования и подписи персональных данных, аналогичный PGP. Secrets был полностью написан на Java и выпущен под лицензией с открытым исходным кодом. В том же году Microsoft опубликовала статью, чтобы продемонстрировать, что ее новая платформа .NET 1.0 была более производительной, чем Java. Для этого Microsoft создала свою версию веб-приложения "Pet Store" от Sun, веб-проекта, который Sun использовала для демонстрации лучших практик Java (Java BluePrints). Microsoft утверждала, что .NET в 10 раз быстрее и в 4 раза производительнее Java. В 2002 году Клинтон разработал приложение JPetStore, чтобы продемонстрировать, что Java может быть более производительной, чем .NET, и при этом достигать лучшей архитектуры, чем в реализации Microsoft. JPetStore 1.0 оказал значительное влияние, а используемый Клинтоном слой базы данных привлек внимание сообщества. Вскоре был запущен проект iBATIS Database Layer 1.0, состоящий из двух компонентов: iBATIS DAO и iBATIS SQL Maps. iBATIS 2.0 был выпущен в июне 2004 года. Это был полный пересмотр архитектуры с сохранением прежнего функционала. Клинтон передал имя и код iBATIS в Apache Software Foundation, и проект находился в ASF в течение шести лет. В конечном итоге iBATIS DAO был признан устаревшим, поскольку были доступны более совершенные DAO-фреймворки, такие как Spring Framework. 19 мая 2010 года был опубликован iBATIS 3.0, и одновременно команда разработчиков решила продолжить разработку фреймворка на Google Code под новым названием MyBatis. 16 июня 2010 года Apache объявила о завершении поддержки iBATIS и его переносе в Apache Attic.