Я искал в Интернете мнения и альтернативы тому, что может предложить Java с точки зрения как ORM, так и не-ORM для доступа к базе данных. В отличие от Python, я точно не знаю, что есть для Java. Rails — это просто, если вы используете Rails, вы используете ActiveRecord и забываете обо всем остальном. Hibernate, по-видимому, исторически часто использовался для фреймворков Java и Spring в качестве уровня ORM. В любом случае, для создания небольших приложений и микросервисов, ориентированных на данные, было бы излишним использовать ORM. В отличие от Rails/Ruby, Java-проекты гораздо более активны и хорошо поддерживаются.

Нашел интересную тему на Reddit, обсуждающую альтернативы ORM, хотя вопрос был именно об ORM. Я нашел следующие возможные альтернативы без ORM, которые могут пригодиться.

JDBC: чистая база данных и SQL-запросы, часть Java API. Многословный (какой, как правило, является Java), но без излишеств. Это прямой интерфейс к базе данных с использованием стандарта API. Я думаю, что в любом случае важно сначала научиться этому, плюс это всегда сработает, если вы все сделаете правильно. Там, где сложные POJO не требуются, JDBC — лучший вариант.

JDBI: интересная оболочка для JDBC, которая упрощает использование JDBC и делает его менее подробным. Конечно, стоит посмотреть, и слой DAO — это все, что нам нужно, в основном, чтобы не писать одни и те же запросы снова и снова.

JOOQ: лямбда-выражение Java 8, поддерживающее интерфейс к JDBC, очень похожее на JDBI, но с гораздо большим количеством функций, включая генерацию кода из базы данных. Большое внимание уделяется функциональному программированию и лямбда-выражениям. Веская причина для этого, поскольку автор также создал lambdaj для Java 5. Он имеет аккуратные методы привязки данных, которые я, безусловно, рассмотрел бы для SparkJava. Это коммерческий, хотя OSS. он по-прежнему бесплатен для некоммерческих баз данных. Так что, если вы используете MariaDB или PostgresSQL, все в порядке. Излишне для небольших приложений, как предполагают некоторые, но об этом стоит упомянуть.

SQL2o — я обнаружил его только во время оценки SparkJava, и это потрясающе. Он такой же компактный, как и JDBC, но добавляет отображение классов Java, что очень лаконично. Это может быть вместо JDBC. Попробуйте с ресурсами для дополнительной простоты использования. Определенно похож на мой выбор после JDBC

ORMLite — это легкая ORM. Обычно используется для приложений Android, но может использоваться и на стороне сервера. Странное лицензирование, поэтому я вряд ли буду его использовать.

Как только у меня закончатся JDBC, что, скорее всего, когда я напишу больше POJO для сохранения объектов, я мог бы рассмотреть SQL2O