stringtranslate.com

Apache iBATIS

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 года.

Использование

Например, предположим, что есть таблица базы данных PRODUCT (PROD_ID INTEGER , PROD_DESC VARCHAR(64) ) и класс Java com.example.Product (id: int , description: String ) . Чтобы прочитать запись продукта с ключом PROD_ID в новый POJO Product , в файл сопоставления XML iBATIS добавляется следующее сопоставление:

 <select id= "getProduct" parameterClass= "java.lang.Long" resultClass= "com.example.Product" > выберите PROD_ID в качестве идентификатора, PROD_DESC в качестве описания из PRODUCT , где PROD_ID = # значение # </select>                 

Затем новый объект Java Product может быть извлечен из базы данных для продукта с номером 123 следующим образом:

 Продукт resultProduct = ( Продукт ) sqlMapClient . queryForObject ( "getProduct" , 123 );     

В примере файла сопоставления #value#относится к длинному целочисленному значению, переданному в запрос. Если параметр является объектом Java, то значения из свойств этого объекта могут быть вставлены в запрос с использованием аналогичной #нотации. Например, если класс параметра — это , com.example.Productимеющий свойство с именем id, то #value#можно заменить на #id#. 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 iBator тесно связан с этим: он подключается к вашей базе данных и использует ее метаданные для генерации файлов сопоставления iBATIS и классов Java.

История

В 2001 году Клинтон Бегин начал проект iBATIS. Первоначально основное внимание уделялось разработке криптографических программных решений. Первым продуктом, выпущенным iBATIS, был Secrets [1] , инструмент шифрования и подписи персональных данных, очень похожий на PGP. Secrets был полностью написан на Java и выпущен под лицензией с открытым исходным кодом.

В том же году Microsoft опубликовала статью [2], в которой демонстрировала, что ее недавняя платформа .NET 1.0 более производительна, чем Java . Для этой цели Microsoft создала собственную версию веб-проекта Sun "Pet Store", который Sun использовала для демонстрации лучших практик Java ( Java BluePrints ). Microsoft утверждала, что .NET в 10 раз быстрее и в 4 раза производительнее, чем Java .

В 2002 году Клинтон разработал приложение под названием JPetStore [3], чтобы продемонстрировать, что Java может быть более производительной, чем .NET , и при этом может достичь лучшей архитектуры, чем та, которая использовалась в реализации Microsoft .

JPetStore 1.0 оказал большое влияние [4] , и слой базы данных , который использовал Клинтон, привлек внимание сообщества. Вскоре стартовал проект iBATIS Database Layer 1.0, состоящий из двух компонентов: iBATIS DAO и iBATIS SQL Maps.

iBATIS 2.0 был выпущен в июне 2004 года. [5] Это был полный редизайн с сохранением тех же функций. Клинтон пожертвовал название и код iBATIS Apache Software Foundation , и проект оставался в ASF в течение шести лет.

В конечном итоге iBATIS DAO был признан устаревшим, учитывая, что появились более совершенные фреймворки DAO, такие как Spring Framework .

19 мая 2010 года был опубликован iBATIS 3.0 , и одновременно команда разработчиков решила продолжить разработку фреймворка на Google Code [6] в рамках нового проекта под названием MyBatis .

16 июня 2010 года Apache объявила о прекращении поддержки iBATIS и его переносе в Apache Attic.

Смотрите также

Ссылки

  1. ^ Секреты iBATIS
  2. ^ Кошачья драка в зоомагазине: J2EE против .NET
  3. ^ "JPetStore 1.0" (PDF) . Архивировано из оригинала (PDF) 2013-10-21 . Получено 2013-09-08 .
  4. ^ Анонс JPetStore 1.0 на TheServerside.com
  5. ^ Анонс iBATIS 2.0
  6. ^ Команда проекта iBATIS переходит на Google Code

Библиография

Внешние ссылки