Легкая альтернатива Hibernate?

104

У меня есть одна пользовательская java-программа, в которой я хотел бы иметь данные о хранилищах в небольшой базе данных, такой как Derby или Sqlite. Я хотел бы использовать уровень абстракции данных в своей программе. Hibernate, по-видимому, требует большой конфигурации и является излишним для того, что мне нужно. Что такое альтернативы легкого веса для спящего режима?

  • 2
    Вы можете проверить альтернативы вместе с примером использования (и пример конфигурации с Spring) здесь: github.com/bwajtr/java-persistence-frameworks-comparison
  • 0
    CMobileCom JPA - это легкая реализация JPA для Java и Android. Его размер около 380К. Это легко и быстро. cmobilecom.com
Теги:
database
hibernate

14 ответов

141
Лучший ответ

Спящий режим требует конфигурации с нулевой конфигурацией, если вы используете аннотации. Он даже может автоматически обнаружить отображаемый beans в пути к классам! Я не вижу никакой альтернативы этому с точки зрения простоты и.

Он также может быть представлен как JPA, который (IMHO) еще проще.

  • 1
    Hibernate довольно хорошо работает с Derby - было очень просто перенести мое приложение Eclipse RCP из SQL Server во встроенный Derby. Если вы используете аннотации, объем конфигурации на самом деле довольно мал.
  • 31
    рядом с нолем не ноль.
Показать ещё 6 комментариев
52

Моя библиотека ORMLite - одна из таких альтернатив. Он поддерживает MySQL, Postgres, Microsoft SQL Server, H2, Derby, HSQLDB и Sqlite и может быть легко распространен на другие. Он использует аннотации для настройки классов, хорошей поддержки Spring, гибкого построителя запросов и т.д.

  • 0
    OrmLite действительно выглядит многообещающе! Но этот проект еще жив? Больше года нет новой версии, нет ответов на запросы / проблемы на Github.
  • 3
    Версия 5.0 была выпущена в июне 2016 года.
30

Он по-прежнему требует конфигурации XML, но посмотрите MyBatis (ранее iBatis).

  • 0
    iBatis очень легкий. Вы можете более легко определить и контролировать свой SQL для сопоставления объектов.
  • 0
    ... нужно отдать голос за iBatis, хотя учтите, что это не альтернатива ORM, поскольку она не пытается конкурировать с Hibernate. Это немного другой вид животного, но соответствует тому, что вы ищете с точки зрения веса.
Показать ещё 2 комментария
22

jOOQ поставляется с плавным DSL-симуляцией SQL непосредственно в Java в качестве побочного эффекта для его основных целей, которые:

  • Генерация исходного кода
  • Полная поддержка стандартного SQL, включая функции языка SQL, такие как UNION, вложенные SELECT, все типы JOIN, сглаживание (например, для самостоятельных подключений) и т.д.
  • Широкая поддержка нестандартного SQL, включая UDT, хранимые процедуры, функции, специфичные для поставщика, и т.д.

Читайте о jOOQ в этой статье: http://java.dzone.com/announcements/simple-and-intuitive-approach или посетите веб-сайт напрямую: http://www.jooq.org

(Отказ от ответственности, я работаю в компании за jOOQ)

  • 3
    JOOQ качается! Мы внедрили в него крупномасштабный сервис ETL и не могли быть счастливее. Я использовал iBATIS, и jOOQ дает все те же преимущества низкоуровневого SQL без множества XML и отсутствия безопасности типов.
  • 3
    Я забыл упомянуть одну из лучших функций jOOQ: сложные и / или динамически сгенерированные запросы можно собирать контролируемым образом и проверять компилятором Java, избавляя вас от всех этих неоднозначных синтаксических ошибок, которые выдают базы данных, и обеспечивая регрессию во время компиляции. покрытие, когда схема меняется под вас.
Показать ещё 2 комментария
12

Вы можете посмотреть Ebean ORM. - Нет сеансов - ленивая загрузка только работает - Простой API для использования и обучения.

  • 0
    это совместимо с SQLite и Android?
  • 0
    Добавлена поддержка SQLite. Я еще не пробовал это на Android.
11

Apache Commons DBUtils берет много повторяющегося gruntwork из программирования JDBC. Он требует небольшой конфигурации и легко учится. Это не структура ORM (в том смысле, что здесь упоминаются Hibernate и другие фреймворки), но она автоматизирует сопоставление столбцов SELECT с полями членов Java, а также другие повторяющиеся задачи программирования JDBC. Это, безусловно, легкий вес.

9

Cayenne послужил мне всем хорошо. Относительно легко понять и запустить его. Я считаю, что обратная инженерная часть особенно очаровательна. Конфигурация может быть выполнена с помощью графического интерфейса.

6

Я могу предложить apache empire-db. http://incubator.apache.org/empire-db/

Apache Empire-db - это компонент постоянной реляционной базы данных с открытым исходным кодом, который позволяет независимое определение динамических запросов поставщика баз данных, а также безопасное и простое извлечение и обновление данных. По сравнению с большинством других решений, таких как, например, Hibernate, TopLink, iBATIS или JPA, Empire-db использует значительно другой подход, уделяя особое внимание безопасности во время компиляции, сокращению избыточности и повышению производительности разработчиков.

Пример:

// Define the query
DBCommand cmd = db.createCommand();
DBColumnExpr EMPLOYEE_FULLNAME= db.EMPLOYEES.LASTNAME.append(", ")
                        .append(db.EMPLOYEES.FIRSTNAME).as("FULL_NAME");
// Select required columns
cmd.select(db.EMPLOYEES.EMPLOYEE_ID, EMPLOYEE_FULLNAME);
cmd.select(db.EMPLOYEES.GENDER, db.EMPLOYEES.PHONE_NUMBER);
cmd.select(db.DEPARTMENTS.NAME.as("DEPARTMENT"));
cmd.select(db.DEPARTMENTS.BUSINESS_UNIT);
// Set Joins
cmd.join(db.EMPLOYEES.DEPARTMENT_ID, db.DEPARTMENTS.DEPARTMENT_ID);
// Set contraints and order
cmd.where(EMP.LASTNAME.length().isGreaterThan(0));
cmd.orderBy(EMP.LASTNAME);;
2

Возможно, я немного опоздал на вечеринку, но в 2010 году я выпустил ActiveJDBC, который является реализацией ORM шаблона ActiveRecord, более чем в 10 раз легче, чем Hibernate в зависимостях, по крайней мере в два раза быстрее во время выполнения и требует нулевой конфигурации или аннотации.

2
  • 0
    Этот должен быть полностью вверху. Это круто !
1

Я создал sormula в качестве альтернативы супертяжелом ORM. Это CRUD-ready, POJO-дружественный, простой в использовании, настройке и понимании. Возможно использование Zero-конфигурации. www.sormula.org

1

Если использование реляционной базы данных не является обязательным, дайте db4o попробовать.

1

Возможно, вы захотите взглянуть на prevayler (на sourceforge). Несколько более легкий подход к упорству. Или вы задумывались о том, как вести отчет против БД?

-1

Kiteframework также очень легкая структура orm. Он обеспечивает почти все операции db с минимальными конфигурациями.

http://deipakgarg.github.com/Kite-ORM/

Раскрытие информации: Я являюсь автором этого проекта

  • 3
    Добро пожаловать в стек переполнения! Спасибо за публикацию вашего ответа! Пожалуйста, внимательно прочитайте FAQ по саморекламе . Также обратите внимание, что необходимо размещать заявление об отказе от ответственности при каждой ссылке на свой собственный сайт / продукт.
  • 2
    он не находится в разработке, нет нового выпуска от автора, последний ожидаемый выпуск был в 2012 году.
Сообщество Overcoder
Наверх
Меню