NoneJ OOQ расшифровывается как объектно-ориентированный запрос JOOQ. jOOQ эффективно сочетает сложный SQL, безопасность типов, генерацию исходного кода, активные записи, хранимые процедуры, расширенные типы данных и Java в плавном, интуитивно понятном DSL.

Что такое jOOQ?

jOOQ расшифровывается как объектно-ориентированный запрос JOOQ. Он сочетает в себе следующие важные функции:

  • Генерация кода:

    jOOQ генерирует простое Java-представление схемы вашей базы данных. Каждая таблица, представление, хранимая процедура, перечисление и UDT - это класс.

  • Активные записи:

    jOOQ реализует простой в использовании шаблон активной записи. Это не OR-mapper, но обеспечивает отображение 1:1 между таблицами / представлениями и классами, между столбцами и элементами.

  • Типичный SQL:

    jOOQ позволяет писать безопасные типы запросов во время компиляции, используя встроенный DSL.

  • Стандарт SQL:

    jOOQ поддерживает все стандартные функции языка SQL, включая более сложные UNION, вложенные SELECT, объединения и псевдонимы.

  • Поддержка функций от производителя:

    jOOQ поощряет использование специфичных для производителя расширений, таких как хранимые процедуры, UDT, ARRAY и многие другие.

Чем вам помогает jOOQ?

  • Ваша база данных всегда на первом месте! Вот где настоящая схема, а не в коде Java или каком-то XML-файле сопоставления с синтаксисом, с которым вы не знакомы.
  • Вы храните свой код СУХОЙ.
  • Вы не пострадаете от несоответствия объектно-реляционного импеданса.
  • В вашем запросе не будет синтаксических ошибок.
  • Вы не забудете правильно привязать переменные. Также нет SQL-инъекций.
  • При разработке вам не нужно знать схему базы данных наизусть. Схема создается на Java. Вы можете использовать автозаполнение в своей среде IDE!
  • Вам не нужно создавать объекты значений для ваших данных. Вместо этого используйте сгенерированные артефакты.
  • У вас есть автоматическое сопоставление типов между типами данных SQL и типами Java.
  • Вы что-то меняете в базе данных? Ваш код Java не компилируется. Чтобы это заметить, не нужно ждать, пока время выполнения.
  • Вы можете забыть о JDBC (особенно полезно при работе с UDT, ARRAY и хранимыми процедурами).
  • Вы можете перенести свой SQL в новую базу данных. jOOQ сгенерирует SQL, который работает с любой базой данных.

Когда использовать jOOQ

jOOQ не является оператором ИЛИ. jOOQ - это низкоуровневая абстракция реляционной персистентности. В принципе, можно даже написать OR-mapper поверх jOOQ. Если вы знаете об этом, вы можете извлечь максимальную пользу из jOOQ...

  • Когда вам нравится выбранная вами РСУБД, включая все ее особенности, характерные для конкретного поставщика.
  • Когда вы любите контролировать свой код.
  • Когда вам нравится реляционная модель данных (прочтите эту интересную статью).
  • Когда любишь SQL.
  • Когда вы любите хранимые процедуры.

Посмотрите примеры сами. Вы убедитесь в этом в кратчайшие сроки!:-)

Когда не использовать jOOQ

С другой стороны, многим нравится простота использования Hibernate или других продуктов, когда дело доходит до простого сохранения любой модели предметной области в любой базе данных. Не стоит использовать jOOQ...

  • Когда вам не важна ваша база данных (или, как ее еще называют, "постоянство").
  • Когда вам действительно не нужен SQL.
  • Когда вы хотите сопоставить свою объектно-ориентированную модель предметной области с базой данных, а не наоборот.
  • Когда вам нужно написать операторы DDL. jOOQ поддерживает только операторы DML.

Какие базы данных поддерживаются

У каждого RDMBS есть свои маленькие особенности. Мы максимально учитываем эти особенности, пытаясь стандартизировать поведение в jOOQ. Чтобы повысить качество jOOQ, мы запускаем модульные тесты для проверки синтаксиса и привязки переменных, а также интеграционные тесты для любой из этих баз данных:

  • Доступ
  • Аврора для MySQL
  • Аврора для PostgreSQL
  • База данных SQL Azure
  • Хранилище данных SQL Azure
  • Кубрид
  • DB2
  • дерби
  • Жар-птица
  • H2
  • HSQLDB
  • Informix
  • Ingres
  • MariaDB
  • MySQL
  • Oracle
  • PostgreSQL
  • Красное смещение
  • SQLite
  • SQL Server
  • Sybase Adaptive Server Enterprise
  • Sybase SQL Anywhere
  • Терадата
  • Vertica

Похожие продукты

Когда вы рассматриваете jOOQ для своего проекта, вы, возможно, также рассматривали любой из этих похожих продуктов:

  • Querydsl: сосредоточение внимания на DSL и абстрагирование "внутренних интеграций", таких как SQL, JPA, коллекции и т. Д. "Полный LINQ Java".
  • JaQu: написание операторов SQL с использованием реальных выражений Java

И с инструментами базы данных, такими как

  • ActiveJDBC: простой инструмент сопоставления, реализующий ActiveRecords в стиле Ruby.

И с инструментами OR-отображения, такими как

  • Hibernate: источник вдохновения для настойчивости Java
  • JPA: стандарт Java EE

Лицензия

jOOQ имеет двойную лицензию в соответствии с лицензией Apache Software License 2.0 и коммерческую лицензию.