Java - это backend язык программирования, следовательно, разработчиком всегда приходится работать с различными реляционными и не реляционными системами управления базами данных. На курсе по JDBC мы прошли материал, который позволяет нам без подключения дополнительных библиотек, чисто на Java Core работать с реляционными СУБД. Но мы видели, как сложно и единообразно писать маппинг сущностей из SQL запросов в базу данных и, наоборот, когда мы пытаемся сохранить какой-то Java объект в базу данных.
Другими словами говоря, мы много занимаемся рутинной работой для ORM (Object Relational Mapping). Более того, единообразен и подход в выполнении CRUD (Create Read Update Delete) операций для всех сущностей. И на помощь нам приходит один из самых актуальных и широко используемых в Java ORM фреймворков - Hibernate. На этом курсе мы изучим, что такое ORM framework, что такое JPA спецификация и как к ней относится Hibernate. Узнаем все основные маппинги сущностей, как реализованы реляционные связи в виде Java аннотаций. Что такое SessionFactory и Session, и как найти соответствие им в JDBC. Мы полностью пройдем жизненный цикл сущностей, узнаем их состояния и почему все вертится вокруг PersistenceContext. Изучим два уровня кеширования в Hibernate, и как решить N+1 проблему! Реализуем собственный слой DAO (и в чем его отличие от слоя Repository), который поможет нам разобраться с тонкостями работы транзакций и зачем использовать DTO при работе с Hibernate. На каждом занятии мы будем заходить в исходный код, чтобы понимать, как все устроено изнутри!
Посмотреть больше
Это пробный урок. Оформите подписку, чтобы получить доступ ко всем материалам курса. Премиум
Ограничение времени просмотра
Вы можете просматривать пробный урок только 10 минут. Получите полный доступ, чтобы смотреть без ограничений.
Меня зовут Денис, мне 30, а программирование мой близкий друг. Уже на протяжении 10 лет оно со мной идет рука об руку и помогает реализовываться в жизни. Чуть не забыл, я именно backend разработчик. То есть я разрабатываю архитектуру и логику приложений, а не отвечаю за его внешний вид. В данный момент я работаю в однойиз самых крупных компаний - Google. А также обучаю Java программированию на своих курсах DMdev, так как именно Java является моим
+117
udemy
Udemy - одна из самых больших площадок в мире по доставке обучающего контента от разных авторов всего мира. Присутсвуют курсы практически на любую тему.
Предыдущее сообщение не актуально, мы включили, поэтому оно само будет генерировать таблицы:
create
hazartilirot
По 63 уроку, внезапный переход на "стационарную" базу данных.... ткните меня носом, возможно, я в очередной раз что-то пропустил, однако, я не помню, чтобы мы создавали в ней таблицу. ХЗ, я сделал сам её, вроде пока работает, насколько правильно или неправильно - понятия не имею.
Интересно, а редактирование сообщений будет на этом сайте? Ошибочка в запросе юзера, нужно поменять на:
id BIGSERIAL PRIMARY KEY,
hazartilirot
LESSON 23:
DROP TABLE users;
CREATE TABLE company (
id SERIAL PRIMARY KEY,
name VARCHAR(64) NOT NULL UNIQUE
);
CREATE TABLE users (
id BIGINT PRIMARY KEY,
username VARCHAR(128) UNIQUE,
firstname VARCHAR(128),
lastname VARCHAR(128),
birth_date DATE,
role VARCHAR(128),
company_id INT REFERENCES company (id)
);
hazartilirot
Когда будете сохранять ползоватся (в пятом уроке), save() из документации depricated, поэтому пользуемся persist
User user = User.builder()
.username("johndoe@example.com")
.firstname("john")
.lastname("doe")
.birth_date(LocalDate.of(2000, 01, 21))
.age(23)
.build();
session.persist(user);
hazartilirot
create table users (
username varchar(128) primary key,
firstname varchar(128),
lastname varchar(128),
birth_date date,
age int
);
hazartilirot
Упал в ошибку cannot find support Gradle version for JDK 19 Intellij
решение у него в гитхабе
https://github.com/dmdev2020/hibernate-starter/issues/3
я опубликовал бы здесь, но тут, не позволяет редактор нормально постить сообщения и добавлять картинку :(
Команда внимательно читает ваши комментарии и оперативно на них реагирует. Вы можете спокойно оставлять запросы на обновления или задавать любые вопросы о курсе здесь.
Новый видеокурс (изучаете в любое время), где вы создадите большой fullstack проект Angular вместе с серверными технологиями (frontend + backend). Является продолжением первого курса (основы Angular).
Hibernate and Java Persistence API (JPA) Fundamentals
Готовы ли вы получить больше от JDBC и ваших данных, используя интеллектуальные оптимизированные методы? Этот курс Hibernate — отличное место для начала. Вы начнете с изучения объектно-реляционного сопоставления и Hibernate, а затем перейдете к изучению основ Hibernate. Оттуда Кевин научит вас базовым аннотациям сопоставления, сопоставлению составных типов и типов коллекций, а также ассоциациям сущностей.
Hibernate и Spring Data JPA: От начинающего до гуру
Hibernate and Spring Data JPA: Beginner to Guru
Hibernate - это реализация JPA по умолчанию, используемая Spring Data JPA.ОБРАТИТЕ ВНИМАНИЕ: Для этого курса требуются Java 17 и Spring Boot 3.JPA означает Java Persistence API. Это общий Java API, используемый для работы с реляционными базами данных.Spring Data JPA является абстракцией, построенной поверх спецификации JPA API.Благодаря абстракции Spring Data JPA, работа с сущностями базы данных становится очень эффективной.Spring Data JPA устран
create
CREATE TABLE payment (
id BIGSERIAL PRIMARY KEY,
amount INT,
receiver_id BIGINT REFERENCES users (id)
);
id BIGSERIAL PRIMARY KEY,
DROP TABLE users;
CREATE TABLE company (
id SERIAL PRIMARY KEY,
name VARCHAR(64) NOT NULL UNIQUE
);
CREATE TABLE users (
id BIGINT PRIMARY KEY,
username VARCHAR(128) UNIQUE,
firstname VARCHAR(128),
lastname VARCHAR(128),
birth_date DATE,
role VARCHAR(128),
company_id INT REFERENCES company (id)
);
User user = User.builder()
.username("johndoe@example.com")
.firstname("john")
.lastname("doe")
.birth_date(LocalDate.of(2000, 01, 21))
.age(23)
.build();
session.persist(user);
username varchar(128) primary key,
firstname varchar(128),
lastname varchar(128),
birth_date date,
age int
);
решение у него в гитхабе
https://github.com/dmdev2020/hibernate-starter/issues/3
я опубликовал бы здесь, но тут, не позволяет редактор нормально постить сообщения и добавлять картинку :(