IBATIS

Матеріал з Вікіпедії — вільної енциклопедії.
Версія від 06:19, 21 березня 2021, створена Salween (обговорення | внесок) (правопис)
Перейти до навігації Перейти до пошуку
Apache iBATIS
Типфреймворк
РозробникApache Software Foundation
Операційна системаКрос-платформовий
Мова програмуванняJava
ЛіцензіяApache License 2.0
Вебсайтibatis.apache.org

iBATIS — фреймворк, що автоматизує взаємодію між базами даних SQL і об'єктами Java, .NET і Ruby On Rails. Взаємодія з SQL-сервером відокремлена від логіки програми шляхом декларації SQL-запитів в окремих конфігураційних файлах у форматі XML. В результаті істотно скорочується кількість коду у порівнянні з доступом до реляційної бази даних з використанням API нижчого рівня, наприклад JDBC чи ODBC.

Інші схожі фреймворки, такі як Hibernate, дозволяють створення об'єктної моделі користувачем, з якої може бути автоматично згенеровано схему бази даних. iBatis застосовує зворотний підхід: розробник починає з SQL бази даних, а iBatis автоматизує створення об'єктів. Обидва підходи мають свої переваги, і iBatis — хороший вибір, якщо розробник не має повного контролю над базою даних.

Використання

Припустимо, існує таблиця бази даних з назвою PRODUCT (PROD_ID INTEGER, PROD_DESC VARCHAR(64)) і Java-клас com.example.Product (id: int, description: String). Щоб мати можливість шукати запис за значенням поля PROD_ID та отримувати результат у об'єкті Product, до конфігураційного XML-файл iBatis треба додати код:

    <select id="getProduct" parameterClass="java.lang.Long" resultClass="com.example.Product">
 	select PROD_ID as id,
               PROD_DESC as description
          from PRODUCT
         where PROD_ID = #value#
    </select>

В Java-програмі новий об'єкт для продукта з ідентифікатором 123 може бути отриманий з бази даних так:

    Product resultProduct = (Product) sqlMapClient.queryForObject("getProduct", 123);

Статус проєкту

Проєкт неактивний з 16 червня 2010 року. 19 травня 2010 року команда розробників вирішила продовжувати розробку на Google Code [1] під новим іменем MyBatis.

Див. також