Короткий ответ
ORM (Object-Relational Mapping) — техника отображения объектной модели на реляционную базу: класс отображается на таблицу, объект — на строку, поля — на колонки, поэтому разработчик работает с объектами, а не пишет вручную SQL и код преобразования. Hibernate — самый популярный open-source ORM-фреймворк для Java, автоматизирующий CRUD и управляющий персистентностью объектов.
Как это работает подробнее
Hibernate — это надстройка над JDBC: под капотом он использует JDBC-драйвер базы данных, но берёт на себя низкоуровневую работу — соединения, подготовку и выполнение SQL, генерацию запросов и отслеживание изменений объектов. Основной выигрыш — меньше ручного кода, выше переносимость и поддерживаемость приложения.
- Маппинг и генерация SQL: объекты автоматически отображаются на таблицы, не нужно вручную писать большое количество SQL.
- HQL — собственный объектно-ориентированный язык запросов, похожий на SQL, но работающий с классами и их свойствами.
- Производительность: встроенное кэширование (кэш первого и второго уровня) и механизм ленивой загрузки.
- Транзакции: автоматическое управление и отслеживание изменений объектов (dirty checking).
- Переносимость: за счёт диалектов приложение легко переносится между MySQL, Oracle, PostgreSQL и другими СУБД.
Пример кода
Employee.java
@Entity
@Table(name = "employees")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
}Что использовать на практике
- Для доступа к данным выбирайте ORM-слой (Hibernate/JPA) вместо чистого JDBC — меньше ручного кода.