Я использовал технологии доступа к данным, поддерживаемые Spring, и заметил, что в нем упоминаются несколько вариантов, и я не уверен в различии между ними:
- Spring -DAO (http://docs.spring.io/spring/docs/2.0.8/reference/dao.html)
- Spring -ORM (http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/orm.html)
- Spring -JDBC (http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/jdbc.html)
Как я понимаю, Spring JDBC предоставляет шаблоны для сокращения шаблона кода для доступа к базе данных простым способом - вы пишете свои собственные SQL-запросы.
Spring -ORM предоставляет упрощенные шаблоны для доступа к базам данных через технологии ORM, такие как Hibernate, My (i) Batis и т.д.
Spring -DAO на веб-сайте Spring:
Поддержка объекта доступа к данным (DAO) в Spring направлена на его создание легко работать с технологиями доступа к данным, такими как JDBC, Hibernate или JDO согласованным образом
Я немного разбираюсь в ORM vs JDBC, поскольку они нацелены на различные способы доступа к БД. Но Spring -DAO просто путают!
Неужели кто-нибудь может прояснить, какие именно различия между этими тремя? Что должно быть предпочтительным в тех сценариях?
Кроме того, доступен еще один проект Spring-DATA
(http://projects.spring.io/spring-data/). Это своего рода родительский проект для всех данных технологии доступа, поддерживаемые Spring, или это просто новое имя для Spring -DAO?