iBATIS - это среда сохранения, которая автоматизирует сопоставление между базами данных SQL и объектами в Java, .NET и Ruby on Rails. В Java это объекты POJO ( простые старые объекты Java ). Отображения отделяются от логики приложения путем упаковки операторов SQL в файлы конфигурации XML . В результате значительно сокращается объем кода, который требуется разработчику для доступа к реляционной базе данных с использованием API нижнего уровня, таких как JDBC и ODBC .
Разработчики) | Фонд программного обеспечения Apache |
---|---|
Написано в | Java , .NET , Ruby |
Операционная система | Кроссплатформенность |
Тип | Фреймворк постоянства |
Лицензия | Лицензия Apache 2.0 |
Веб-сайт | ibatis |
Другие структуры сохраняемости, такие как Hibernate, позволяют пользователю создавать объектную модель (скажем, на Java), а также автоматически создавать и поддерживать реляционную базу данных. iBATIS использует обратный подход: разработчик начинает с базы данных SQL, а iBATIS автоматизирует создание объектов Java. Оба подхода имеют преимущества, и iBATIS - хороший выбор, когда разработчик не имеет полного контроля над схемой базы данных SQL. Например, приложению может потребоваться доступ к существующей базе данных SQL, используемой другим программным обеспечением, или доступ к новой базе данных, схема которой не полностью находится под контролем разработчика приложения, например, когда специализированная группа разработчиков базы данных создала схему и тщательно ее оптимизировала. для высокой производительности.
21 мая 2010 года команда разработчиков разделила код, создав новый проект MyBatis и выполнив в нем новые версии. Как следствие, проект Apache iBATIS стал неактивным и был перемещен на чердак Apache в июне 2010 года.
Применение
Например, предположим, что есть таблица базы данных PRODUCT (PROD_ID INTEGER , PROD_DESC VARCHAR (64) ) и класс Java com.example.Product (id: int , description: String ) . Чтобы прочитать запись о продукте с ключом PROD_ID в новый Продукт POJO, следующее сопоставление добавляется в файл сопоставления iBATIS XML:
id = "getProduct" parameterClass = "java.lang.Long" resultClass = "com.example.Product" > выберите PROD_ID как id, PROD_DESC как описание из ПРОДУКТА где PROD_ID = # значение #
Затем новый объект продукта Java может быть получен из базы данных для продукта номер 123 следующим образом:
Результат продуктаProduct = ( Product ) sqlMapClient . queryForObject ( "getProduct" , 123 );
В примере файла сопоставления #value#
относится к длинному целочисленному значению, переданному в запрос. Если параметр является объектом Java, то значения из свойств этого объекта могут быть вставлены в запрос с использованием аналогичной #
записи. Например, если класс параметров - это a, у 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 - это ORM на JavaScript, вдохновленный 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.
Смотрите также
- Java Persistence API
- Спящий режим
- EclipseLink
- Apache Cayenne
- IBM PureQuery
- nHydrate
- OpenJPA
Рекомендации
- ^ Секреты iBATIS
- ^ Кошачий бой в зоомагазине: J2EE против .NET
- ^ "JPetStore 1.0" (PDF) . Архивировано из оригинального (PDF) 21 октября 2013 года . Проверено 8 сентября 2013 .
- ^ Объявление JPetStore 1.0 на TheServerside.com
- ^ Объявление об iBATIS 2.0
- ^ Команда проекта iBATIS переходит на Google Code
Библиография
- Бегин, Клинтон; Брэндон Гудин; Ларри Мидорс (17 января 2007 г.). iBATIS в действии (1-е изд.). Укомплектование персоналом . С. 384 . ISBN 978-1-932394-82-5.
- Ричардсон, Крис (23 января 2006 г.). POJO в действии (1-е изд.). Укомплектование персоналом . С. 456 . ISBN 1-932394-58-3.
Внешние ссылки
- Официальный веб-сайт