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

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

Ответ 1

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

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

Ответ 2

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

Ответ 3

Это все еще требует конфигурации XML, но взгляните на MyBatis (ранее iBatis).

Ответ 4

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)

Ответ 5

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

Ответ 6

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

Ответ 7

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

Ответ 8

Я могу предложить 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);;

Ответ 10

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

Ответ 11

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

Ответ 12

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

Ответ 13

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

Ответ 14

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

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

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