Описание тега jooq
Что такое 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 и коммерческую лицензию.