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 является моим
Udemy - одна из самых больших площадок в мире по доставке обучающего контента от разных авторов всего мира. Присутсвуют курсы практически на любую тему.
Предыдущее сообщение не актуально, мы включили, поэтому оно само будет генерировать таблицы:
create
hazartilirot
По 63 уроку, внезапный переход на "стационарную" базу данных.... ткните меня носом, возможно, я в очередной раз что-то пропустил, однако, я не помню, чтобы мы создавали в ней таблицу. ХЗ, я сделал сам её, вроде пока работает, насколько правильно или неправильно - понятия не имею.
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
я опубликовал бы здесь, но тут, не позволяет редактор нормально постить сообщения и добавлять картинку :(