Java-поток ORM
Speedment — это набор инструментов и среда выполнения Java Stream ORM с открытым исходным кодом. Инструментарий анализирует метаданные существующей базы данных SQL и автоматически создает Java-представление модели данных. Этот мощный ORM позволяет создавать масштабируемые и эффективные приложения Java с использованием стандартных потоков Java без необходимости вводить SQL или использовать какой-либо новый API.
Первоначально Speedment был разработан исследователями и инженерами из Пало-Альто с целью упростить и оптимизировать разработку приложений баз данных Java с помощью API Java Stream.
Speedment лицензируется под дружественной для бизнеса лицензией Apache 2. Вклад пользователей приветствуется. Пожалуйста, не стесняйтесь запрашивать новые функции, предлагать улучшения и отправлять отчеты об ошибках. Подробнее о вкладе читайте здесь.
Быстрый старт
Предполагая, что у вас установлен Maven и доступна реляционная база данных, вы можете начать использовать Speedment за минуту:
- Начать новый проект Speedment Maven
- Подключитесь к вашей базе данных
Выражение SQL в виде потоков Java
Существует замечательное сходство между потоками Java и SQL, как показано в упрощенной таблице. Это означает, что больше нет необходимости вручную писать SQL-запросы. Вы можете оставаться в чистом мире Java!
Пример
Найдите в базе данных фильмов фильм продолжительностью более 120 минут:
// Searches are optimized in the background!
Optional < Film > longFilm = films . stream ()
. filter ( Film . LENGTH . greaterThan ( 120 ))
. findAny ();
Результатом будет следующий SQL-запрос:
SELECT
` film_id ` , ` title ` , ` description ` , ` release_year ` ,
` language_id ` , ` original_language_id ` , ` rental_duration ` , ` rental_rate ` ,
` length ` , ` replacement_cost ` , ` rating ` , ` special_features ` ,
` last_update `
FROM
` sakila ` . ` film `
WHERE
( ` length ` > 120 )
Функции
Speedment оснащен функциями, перечисленными ниже, и многим другим.
Просмотр таблиц базы данных как стандартных потоков Java
- Pure Java — Stream API вместо SQL устраняет необходимость в языке запросов.
- Динамические соединения — возможность выполнять соединения как потоки Java на стороне приложения.
- Параллельные потоки — рабочая нагрузка может автоматически распределяться по нескольким потокам.
Короткий и лаконичный код безопасности типа
- Генерация кода . Автоматическое представление Java о последнем состоянии вашей базы данных исключает шаблонный код и необходимость ручного написания классов Java Entity, одновременно сводя к минимуму риск возникновения ошибок.
- Null Protection — минимизирует риск, связанный с нулевыми значениями базы данных, путем переноса в дополнительные параметры Java.
- Интеграция Enum . Сопоставление столбцов String с перечислениями Java повышает эффективность использования памяти и безопасность типов.
Ленивая оценка для повышения производительности
- Потоки ленивы : контент из базы данных извлекается по мере необходимости и потребления элементов.
- Pipeline Introspection — Оптимизированная производительность за счет короткого замыкания потоковых операций.
Учебники
Учебные пособия разделены на три раздела. Основы описаны в первом разделе без каких-либо предварительных знаний о Speedment. Это закладывает основу знаний, необходимых для получения полной пользы от следующих руководств.
Основы
- Урок 1 - Привет, Speedment
- Урок 2. Первый стрим от Speedment
Примеры приложений
- Урок 3. Интеграция Speedment Spring Boot; Будьте уверены – это легко
- Урок 4. Фильтры скорости на основе веб-токенов Json
- Урок 5. Регистрация ошибок в базе данных
- Урок 6. Использование Speedment с Java EE
- Урок 7. Создание систем, основанных на событиях
- Урок 8. Написание собственных расширений
Увеличение скорости
- Урок 9. Форматирование вывода в формате JSON
- Урок 10. Работа с BLOBS и CLOBS
Ресурсы
- Документация — прочтите руководство пользователя Speedment.
- JavaDocs — последняя версия JavaDocs Speedment.
- Примеры . Здесь представлено 15 подробных примеров, а дополнительные можно найти в приведенном выше руководстве пользователя.
- Чат Gitter . Свяжитесь с разработчиками Speedment и другими членами сообщества через чат Gitter.
- Создание запроса на включение . Запросы на включение и предложения по улучшению от сообщества принимаются с радостью. Дополнительную информацию можно найти здесь.
Требования
Java-версия
Для Speedment требуется Java 8
или более поздняя версия. Убедитесь, что ваша IDE настроена на использование JDK 8 (версия 1.8.0_40 или новее).
Коннекторы баз данных
Speedment Open Source изначально поддерживает следующие базы данных:
- MySQL
- МарияДБ
- PostgreSQL
- SQLite
Соединители корпоративных баз данных включают в себя:
- АС400
- Кассандра
- DB2
- Информикс
- Оракул
- Снежинка
- SQL-сервер
Дополнительные сведения см. в разделе Лицензирование и цены Speedment.
Лицензии
- Speedment с открытым исходным кодом . На этом сайте представлен проект Speedment с открытым исходным кодом, доступный по лицензии Apache 2.
- Speedment Stream — те же замечательные функции, что и Speedment OSS, с поддержкой коммерческих баз данных. Узнайте больше на сайте Speedment.com/stream.
- Speedment HyperStream — расширение Speedment Stream, которое также включает в себя гиперзвуковую производительность запросов, обеспечиваемую уникальной моделью управления в памяти JVM. Узнайте больше на сайте Speedment.com/hyperStream.
Авторское право
Авторские права (c) 2014–2019, Speedment, Inc. Все права защищены. Посетите www.speedment.com для получения дополнительной информации.
Визуализация активности Github