Oracle aq что это

Обновлено: 02.07.2024

Как недавно было объявлено в нашей новостной рассылке , грядущая версия jOOQ 3.5 будет включать в себя потрясающую новую функцию для тех из вас, кто использует базу данных Oracle: встроенная поддержка Oracle AQ! И ваш клиентский код будет так легко написать, что вы сразу же разместите эти AQ по всей базе данных.

Как это работает?

обоснование JOOQ

Новым является то, что объекты AQ теперь также генерируются и ассоциируются с сгенерированным типом объекта.

Простая схема

Давайте рассмотрим написание этой простой схемы ( все источники доступны на GitHub )

Итак, по сути, у нас есть как OBJECT, так и VARRAY для книг и авторов. Вы можете предпочесть использование типов TABLE, а не типов VARRAY, но ради простоты мы придерживаемся VARRAY (поскольку в Oracle не так просто использовать вложенные типы TABLE с AQ в AQ).

сгенерированный jOOQ код

Когда вы запустите генератор кода jOOQ (версия 3.5 и выше) для вышеуказанной схемы, вы получите новый файл Queues.java , который содержит:

Очевидно, что ранее показанные типы OBJECT и VARRAY также генерируются jOOQ, как lables.

Использование созданных артефактов

Шутки в сторону? Это просто? Да!

Сравните вышесказанное с тем, что вы написали ранее через JDBC или с помощью собственных API-интерфейсов Oracle. Вы найдете пару примеров о том, как сериализовать / десериализовать типы RAW, но, честно говоря, очереди потрясающие, потому что вы можете отправлять типы OBJECT через базу данных, а мы не видим этих примеров из Oracle. На самом деле, поверьте нам, вы не хотите сериализовать типы OBJECT, VARRAY или TABLE через JDBC. Вы не Это наша работа. Мы взломали JDBC, так что вам не нужно .

Конечно, вы также можете передавать MESSAGE_PROPERTIES_T , ENQUEUE_OPTIONS_T и DEQUEUE_OPTIONS_T качестве аргументов в enqueue() и dequeue() .

Вот и все. Не может быть так сложно, не так ли?

jooq-The-лучший способ к записи-SQL-в-Java-маленький

Goodie: Java 8 и Oracle AQ

С помощью приведенного выше простого API и Java 8 мы можем сделать то, что Oracle, должно быть, знал давно, когда они переименовали маркетинговое имя Oracle AQ в Oracle Streams. Давайте создадим поток Java 8 для объектов OBJECT, созданных AQ, с помощью jOOQ. Проще простого. Просто пиши:

Читайте также: