Разработчик (и) | Apache Software Foundation |
---|---|
Написано на | Java, .NET, Ruby |
Операционная система | Кросс-платформенная |
Тип | Persistence framework |
Лицензия | Лицензия Apache 2.0 |
Веб-сайт | ibatis.apache.org |
iBATIS - это структура сохранения, которая автоматизирует сопоставление между базами данных SQL и объектами в Java,.NET, и Ruby on Rails. В Java это объекты POJO (Обычные старые объекты Java ). Сопоставления отделены от логики приложения путем упаковки операторов SQL в файлы конфигурации XML. В результате значительно сокращается объем кода, который требуется разработчику для доступа к реляционной базе данных с использованием API нижнего уровня, таких как JDBC и ODBC.
, других фреймворков сохраняемости, таких как Hibernate разрешить создание объектной модели (скажем, на Java) пользователем, а также автоматически создать и поддерживать реляционную базу данных. iBATIS использует обратный подход: разработчик начинает с базы данных SQL, а iBATIS автоматизирует создание объектов Java. Оба подхода имеют преимущества, и iBATIS - хороший выбор, когда разработчик не имеет полного контроля над схемой базы данных SQL. Например, приложению может потребоваться доступ к существующей базе данных SQL, используемой другим программным обеспечением, или доступ к новой базе данных, схема которой не полностью находится под контролем разработчика приложения, например, когда специализированная группа разработчиков базы данных создала схему и тщательно ее оптимизировала. для высокой производительности.
21 мая 2010 года группа разработчиков разделила код, создав новый проект под названием MyBatis и выполнив в нем новые версии. Как следствие, проект Apache iBATIS стал неактивным и был перемещен на Apache Attic в июне 2010 года.
Например, предположим, что существует таблица базы данных PRODUCT (PROD_ID INTEGER, PROD_DESC VARCHAR ( 64)) и класс Java com.example.Product (id: int, description: String). Чтобы прочитать запись продукта с ключом PROD_ID в новый POJO Product, в файл сопоставления iBATIS XML добавляется следующее сопоставление:
Новый объект Java Product может быть затем извлечен из базы данных для продукта с номером 123 следующим образом:
Product resultProduct = (Product) sqlMapClient.queryForObject ("getProduct", 123);
В примере файла сопоставления # значение #
относится к длинному целочисленному значению, переданному в запрос. Если параметр является объектом Java, тогда значения из свойств этого объекта могут быть вставлены в запрос с использованием аналогичной нотации #
. Например, если класс параметра - это com.example.Product
, у которого есть свойство с именем id
, тогда # value #
можно заменить на # идентификатор #
. Объект sqlMapClient
является экземпляром класса com.ibatis.sqlmap.client.SqlMapClient
.
Основатель iBATIS публично заявил о своем недовольстве Java. 5, но продолжил выпуск новых версий iBATIS для Java. Версии 2.3.1 и 2.3.2 вышли в апреле 2008 года, а 2.3.3 - в июле.
В настоящее время фреймворк доступен в версиях Java, .NET и Ruby (RBatis). Проект jBati - это JavaScript ORM, вдохновленный iBATIS.
Инструмент Apache тесно связан: он подключается к вашей базе данных и использует свои метаданные для создания файлов сопоставления iBATIS и классов Java.
В 2001 году Клинтон Бегин начал проект под названием iBATIS. Первоначально основное внимание уделялось разработке программных решений для криптографии. Первым продуктом, выпущенным iBATIS, был Secrets, инструмент для шифрования и подписи личных данных, очень похожий на PGP. Secrets был полностью написан на Java и выпущен под лицензией с открытым исходным кодом.
В том же году Microsoft опубликовала статью, чтобы продемонстрировать, что ее недавняя среда .NET 1.0 была более продуктивной, чем Java. С этой целью Microsoft создала свою собственную версию веб-проекта Sun "Pet Store", веб-проекта, который 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.