Прочитал достаточно много информации про JDBC и ORM, теперь хотел бы проверить свое понимание работы с БД в Java и задать пару вопросов касательно JDBC, JPA, ORM (Hibernate).
Как я понял что JDBC, что ORM делают одно и тоже разница лишь сложности и оптимизации для разных проектов, то есть иногда выгодно использовать JDBC, а иногда ORM.
Подскажите пожалуйста правильно ли я рассуждаю?
Нет неправильно рассуждаете.
JDBC это базис - ORM это надстройка над JDBC.
JDBC это гвозди которыми можно сколотить скажем табуретку, а ORM это автоматический пистолет, которым забивают гвозди.
Программист, который пишет на JDBC похож на трудягу который забивает гвозди ручным молотком, медленно и упорно. Если вы используете ORM, то уже похожи на квалифицированного рабочего который забивает гвозди пневмопистолетом: быстро и надежно.
JDBC - это средство работы с БД из java. Hibernate (и jpa) - предназначен для отделения работы в java от работы в БД. При этом, программист работает в java, реализует бизнес-правила, а вопросы синхронизации с БД поручает Hibernate. Программист пишет на java, используя возвышенные абстракции ООП (в частности наследование), а hibernate, в соответствии с настройками и мапингом (который тоже может создать Hibernate) производит синхронизацию и подтягивание объектов по требованию. Предполагается, что программист не пишет запросов на select, insert, delete, update (хотя такая возможность и предусмотрена) и SpringData еще больше усиливает эту возможность. Например, программист в java запрашивает через hibernate объект по классу объекта и его id, изменяет поля этого объекта и после этого, запрашивает у hibernate синхронизацию этого объекта с БД. Hibernate сам понимает как написать select и как написать update. Hibernate - это реляционное хранение (объектов java) под идеоматику java.
Напишите пару тестовых проектов на Spring Data JDBC и на Spring Data JPA - почувствуете разницу. По работе могут встретиться разные решения, требующие поддержки, но знать надо и то, и то.
Spring Data JDBC - сам управляешь обращениями к БД. Требуется знание SQL.
Spring Data JPA - упрощает обращения к БД средствами Java. Знание SQL не требуется, но может пригодиться.
Продвижение своими сайтами как стратегия роста и независимости