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

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

Вы можете проверить альтернативы вместе с примером использования (и примером конфигурации с Spring) здесь: github.com/bwajtr/java-persistence-frameworks-comparison

Břetislav Wajtr 30.12.2016 22:26

CMobileCom JPA - это облегченная реализация JPA для Java и Android. Его размер около 380К. Он легкий и быстрый. cmobilecom.com

John 03.09.2018 07:35
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
116
2
89 865
14
Перейти к ответу Данный вопрос помечен как решенный

Ответы 14

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

Остался MyBatis: mybatis.org

Vladislav Rastrusny 30.03.2011 21:16

Я думаю, что XML в i / MyBatis на самом деле является преимуществом, поскольку он хранит сложные запросы в формате, который можно легко скопировать в консоль SQL для тестирования.

Peter Tillemans 23.06.2011 01:44

iBatis очень легкий. Вы можете более легко определять и контролировать свой SQL для сопоставления объектов.

Berlin Brown 19.11.2008 01:37

... нужно проголосовать за iBatis, хотя имейте в виду, что это не альтернатива ORM, поскольку она не пытается конкурировать с подобными Hibernate. Это немного другое животное, но по весу оно соответствует тому, что вы ищете.

vector 12.11.2009 07:43

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

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

Ответ принят как подходящий

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

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

рядом с нулем не ноль.

njzk2 05.08.2011 14:10

также ему нужно много внешних библиотек, попробуйте использовать его на android: P

sherif 23.10.2011 17:12

Я попытался найти более простую альтернативу Hibernate. В личном проекте я использовал MyBatis (какое ужасное имя). Это было гораздо больше работы, чем Hibernate. Hibernate действительно экономит много кода SQL и помогает с отношениями родитель-потомок. Я также просмотрел несколько ORM в стиле ActiveRecord для Java. Ни один из них не казался зрелым или более простым, чем Hibernate. Итак, я возвращаюсь в Hibernate.

devdanke 16.03.2012 17:26

был вопрос не об АЛЬТЕРНАТИВЕ?

Łukasz Gruner 16.03.2013 16:02

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

muriloq 14.05.2009 22:28

Hibernate - не легкая альтернатива Hiberernate

cosbor11 21.10.2015 09:13

Использование прямого сопоставления с объектами предполагает, что это можно сделать, при использовании инверсии сопоставление xml довольно сложно с гибернацией. Hibernate также может быть проблематичным из-за его прокси-объектов, которые также добавляют объекты в кучу. Часто требуется более простая альтернатива, просто используя JdbcTemplate и стратегию сопоставления полей.

Brett Ryan 16.04.2016 16:58

Если вы хотите использовать Hibernate в приложении для Android, очевидно, что он слишком тяжелый. Теперь для Android и Java доступна облегченная реализация JPA - CMobileCom JPA. Он легкий (около 380К) и быстрый. Проверьте это на cmobilecom.com.

John 03.09.2018 07:43

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

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

он совместим с SQLite и Android?

endryha 26.11.2010 19:39

Добавлена ​​поддержка SQLite. На Android еще не пробовал.

Rob Bygrave 07.03.2011 01:27

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

OrmLite действительно выглядит многообещающим! Но жив ли этот проект? Нет новой версии больше года, нет ответов на запросы / проблемы на Github.

Stefan 17.05.2016 11:47

Версия 5.0 была выпущена в июне 2016 года.

Lauri Laanti 18.08.2016 17:21

Версия 5.1 выпущена 19.02.2018. Но это вообще не сравнимо с Hibernate, и некоторые реализации аннотаций JPA не работают должным образом.

M-Razavi 12.07.2019 23:08

"сопоставимо с Hibernate"? Они оба являются ORM, но в остальном сильно отличаются. Что касается реализаций JPA, пожалуйста, заполните отчет об ошибке, если вы найдете что-то @ M-Razavi.

Gray 16.07.2019 01:11

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)

jOOQ качается! С его помощью мы внедрили крупномасштабный сервис ETL и очень счастливы. Я использовал iBATIS, и jOOQ дает все те же преимущества низкоуровневого SQL, без множества XML и отсутствия безопасности типов.

spieden 02.03.2012 06:16

Я забыл упомянуть одну из лучших особенностей jOOQ: сложные и / или динамически сгенерированные запросы могут быть собраны контролируемым образом и проверены компилятором Java, что избавляет вас от всех этих неоднозначных синтаксических ошибок, возникающих в базах данных, и обеспечивает регрессию во время компиляции. покрытие, когда схема изменяется под вами.

spieden 02.03.2012 06:26

JOOQ потрясающий, но очевидно, что теперь он не бесплатен для Oracle и Sybase, поэтому многие люди избегают этого фреймворка и используют как MyBatis.

Makky 03.10.2014 22:44

@Makky: Спасибо за отзыв. Я очень надеюсь, что вы помните о реальных ценностных предложениях и не собираетесь переходить на совершенно другую структуру только на основании того факта, что одна из них бесплатна, а другая - нет. Стоимость обслуживания и миграции программного обеспечения ваш из-за этого непомерно высока и намного превосходит любую разумную коммерческую лицензию ...

Lukas Eder 04.10.2014 18:21

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

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

Фреймворк 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

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

qwertzguy 30.12.2012 03:07

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

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

Kiteframework - это также очень легкий orm framework. Он обеспечивает почти все операции с базами данных с минимальными настройками.

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

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

Добро пожаловать в Stack Overflow! Спасибо, что разместили свой ответ! Обязательно внимательно прочтите FAQ по саморекламе. Также обратите внимание, что именно требуется вы публикуете отказ от ответственности каждый раз, когда ссылаетесь на свой собственный сайт / продукт.

Andrew Barber 19.11.2012 22:36

он не находится в разработке, от автора нет нового текущего релиза, последний ожидаемый релиз был в 2012 году.

Barun 17.08.2015 09:59

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