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

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

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

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

Моя библиотека ORMLite – одна из таких альтернатив. Он поддерживает MySQL, Postgres, Microsoft SQL Server, H2, Derby, HSQLDB и Sqlite и может быть легко распространен на другие. Он использует annotations для настройки classов, хорошей поддержки 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)

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

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

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

Я могу предложить 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 в зависимостях, по крайней мере в два раза быстрее во время выполнения и требует нулевой конфигурации или annotations.

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

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

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

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

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

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

  • ВСТАВИТЬ, ЕСЛИ НЕ СУЩЕСТВУЕТ ОБЩЕЕ ОБНОВЛЕНИЕ?
  • Как просмотреть базу данных SQLite на устройстве Android?
  • ALTER COLUMN в sqlite
  • Извлечение большого блоба из базы данных Android sqlite
  • Как преобразовать массив байтов в Bitmap
  • Таблица SQL со строкой «список» и таблицей SQL со строкой для каждой записи
  • Сохранение массивов в базе данных SQLite
  • проблема с базой данных sqlite, нет такой таблицы:
  • База данных SQLite Android Database Cursor с 2048 КБ не выполнена
  • Адаптер курсора и пример sqlite
  • Котировки Android в строке запроса sql
  • Interesting Posts

    C # Audio Library

    Почему microsoft сделал JavaScriptSerializer устаревшим до .net 3.5 SP1 и снова активным после этого?

    OnItemClickListener не работает с элементом ListView, содержащим кнопку

    Невозможно прочитать и записать файл изображения TIFF с использованием стандартной библиотеки Java ImageIO

    Где пропал сценарий JavaFX?

    Отключить открытие браузера из адресной строки проводника Windows.

    В чем разница между IF-ELSE и SWITCH?

    Что означает «Windows не операционная система реального времени»?

    Каков наилучший способ объединить mp3-файлы?

    как получить доступ к папке загрузки в android?

    Как динамически изменять размер изображения с помощью CSS при изменении ширины / высоты браузера?

    Препроцессор C ++ идентичен препроцессору C?

    Изменение ответов HTTP с расширения Chrome

    Включить / отключить сетевой адаптер с помощью сочетания клавиш

    Где хранится информация о прокрутке терминала (как работает tmpfs)?

    Давайте будем гением компьютера.