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

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

14 ответов

Решение

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

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

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

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

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)

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

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

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

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

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

Я создал Сормулу как альтернативу тяжеловесным ORM. Он готов к CRUD, POJO, прост в использовании, настройке и понимании. Возможно использование нулевой конфигурации. http://www.sormula.org/

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

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

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

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

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

Другие вопросы по тегам