У меня есть одна пользовательская java-программа, в которой я хотел бы иметь данные о хранилищах в небольшой базе данных, такой как Derby или Sqlite. Я хотел бы использовать уровень абстракции данных в своей программе. Hibernate, по-видимому, требует большой конфигурации и является излишним для того, что мне нужно. Что такое альтернативы легкого веса для спящего режима?
Легкая альтернатива 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);;
Ответ 9
ORMAN также хороша. https://github.com/ahmetalpbalkan/orman
Документация: https://github.com/ahmetalpbalkan/orman/wiki
Сравнение: https://github.com/ahmetalpbalkan/orman/wiki/Why-orman-is-better-than-other-orms-for-you%3F
Ответ 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/
Раскрытие информации: Я являюсь автором этого проекта