Введение
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 is a persistence framework which automates the mapping between SQL databases and objects in Java, NET, and Ruby on Rails. In Java, the objects are POJOs (Plain Old Java Objects). The mappings are decoupled from the application logic by packaging the SQL statements in XML configuration files. The result is a significant reduction in the amount of code that a developer needs to access a relational database using lower level APIs like JDBC and ODBC. Other persistence frameworks such as Hibernate allow the creation of an object model (in Java, say) by the user, and create and maintain the relational database automatically. iBATIS takes the reverse approach: the developer starts with a SQL database and iBATIS automates the creation of the Java objects. Both approaches have advantages, and iBATIS is a good choice when the developer does not have full control over the SQL database schema. For example, an application may need to access an existing SQL database used by other software, or access a new database whose schema is not fully under the application developer's control, such as when a specialized database design team has created the schema and carefully optimized it for high performance. On May 21, 2010 the development team forked the code creating a new project called MyBatis and making new releases there. As a consequence the Apache iBATIS project became inactive and was moved to the Apache Attic in June 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.