Hibernate: базовая дорожная карта внедрения

Добро пожаловать, Джонатас. С этого момента желаю вам хорошей учебы.

Вот дорожная карта внедрения Hibernate, для вашего изучения 😎📚.

💻 Установки

  • Java
  • PostgreSQL
  • Java IDEA (Intellij, Eclipse или NetBeans)
  • СУБД (Dbeaver, PostgreSQL и т.д.)

Начало проекта

Мы можем начать проект с весны. Через страницу Spring Initializr.

Выбор следующих зависимостей:

  • Spring Data JPA (SQL)
  • Драйвер PostgreSQL (SQL)
  • Spring Web (Web)

В качестве проекта мы должны выбрать Maven Project. У нас также есть другие параметры для выбора и настройки, такие как версии, имена проектов. Выберите в соответствии с версией Java на вашей машине 💻. Имя вы тоже можете выбрать по своему усмотрению 😉.

Создание базы данных

Нам нужно создать базу данных, которую мы будем вызывать позже в конфигурациях JDBC, XML и т.д. Но теперь вам не нужно беспокоиться.

Давайте по частям!

Создайте свою базу данных.

Если у вас есть сомнения, зайдите по этой ссылке, о w3Schools, о создании базы данных.

Открытие проекта

В моем случае я использую сообщество Intellij. Если вы используете другую IDE, не беспокойтесь, открытие проекта не сильно отличается.

Для Intellij.
Нажмите на File > Open > ‘Выбираем наш проект’ > ‘Нажимаем на open’.
Тогда: Файл > Новый > Модуль из существующих источников > ‘Выбираем наш проект’ > Следующий > Импорт […] — Maven > Создать

Создание наших источников

А теперь самое интересное! 🤠

Давайте создадим наши сущности.

Пример:

@Entity
@Table(name="usuario")
@Immutable
public class UsuarioEntity {

    @Id
    @NotNull
    @Column(name = "id")
    @GeneratedValue(strategy= GenerationType.AUTO)
    public Integer id;

    @NotNull
    @Column(length = 50)
    public String nome;

}
Войдите в полноэкранный режим Выход из полноэкранного режима

Здесь мы помещаем в базу данных два атрибута (ой, колонки). Это id (который является почти обязательным) и имя. Просто чтобы понять идею.

  • Аннотация (@) Entity предназначена для определения сущностей/таблиц в нашей базе данных.
  • (@) Table(name=»user») предназначен для определения таблицы и передачи имени, которое эта таблица будет иметь в базе данных.
  • Аннотация (@) Id предназначена для определения идентификатора нашей таблицы, или уникального идентификатора (pk).
  • (@) NotNull определяет, что он не может быть нулевым.
  • Аннотация (@) GeneratedValue(strategy= GenerationType.AUTO) определяет, что он должен генерировать автоматические приращения.

Это был базовый пример безграничных возможностей, которые предоставляет Hibernate 👀.

Hibernate также позволяет вам:

  • Создайте всю структуру вашей базы данных
  • Изменение всей базы данных через сам java-код
  • Выполнение фильтров и селектов для данных
  • Среди других безграничных возможностей! 🌌🌌

Конфигурация 🛠

В файл application.properties вставьте следующее:

spring.datasource.url= jdbc:postgresql://localhost:5432/nome_do_seu_banco_aqui
spring.datasource.username= postgres
spring.datasource.password= admin
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation= true
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.PostgreSQLDialect
# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto= update
Войдите в полноэкранный режим Выход из полноэкранного режима

Настройте порт, на котором запущен PostgreSQL, имя банка, имя пользователя и пароль банка.

Далее мы сделаем некоторую конфигурацию для запуска SessionFactory в ‘main’, чтобы мы могли проверить, работает ли наша сущность.

Создайте файл hibernate.cfg.xml в папке resources (в той же папке, где находится application.properties).

В файл hibernate.cfg.xml вставьте следующее:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>

        <property name="connection.url">jdbc:postgresql://localhost:5432/nome_do_seu_banco_aqui</property>
        <property name="connection.username">postgres</property>
        <property name="connection.password">admin</property>
        <property name="connection.driver_class">org.postgresql.Driver</property>

        <property name="dialect">org.hibernate.dialect.PostgreSQL10Dialect</property>
        <property name="hbm2ddl.auto">update</property>

        <property name="show_sql">true</property>
        <property name="format_sql">true</property>

        <property name="hibernate.current_session_context_class">thread</property>

        <mapping class="jonathas.javabasicapi.UserEntity" />

    </session-factory>
</hibernate-configuration>
Войдите в полноэкранный режим Выход из полноэкранного режима

ЧТО! Что это? 🤨

Итак, это .xml файл для конфигурации сеанса, который мы будем использовать для запуска некоторых созданий. Этот файл служит ссылкой на фабрику, находит базу данных и сохраняет изменения!

Настройте также в этом файле порт, на котором запущен PostgreSQL, имя базы данных, имя пользователя и пароль.

Генерирование создания и появление в базе данных

Крутая часть! 🥱

В наших сущностях мы должны генерировать геттеры и сеттеры. Мы также должны создать конструктор, который будет принимать аргументы (кроме id) для ссылки на наш объект/сущность. См. пример ниже:

package jonathas.javabasicapi;

import com.sun.istack.NotNull;
import org.hibernate.annotations.Immutable;

import javax.persistence.*;

@Entity
@Table
@Immutable
public class UsuarioEntity {

    public UsuarioEntity(String nome) {
        this.nome = nome;
    }

    @Id
    @NotNull
    @Column(name = "id")
    @GeneratedValue(strategy= GenerationType.AUTO)
    public Integer id;

    @NotNull
    @Column(length = 50)
    public String nome;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

}
Войдите в полноэкранный режим Выход из полноэкранного режима

Обратите внимание, что мы добавили set и get к имени. Мы также добавили конструктор. Заметьте, что это проще, чем казалось…

Теперь в своем приложении (главное) вставьте следующее:

SessionFactory sessionFactory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();

        Session session = sessionFactory.openSession();
        session.beginTransaction();

        UsuarioEntity usuario = new UsuarioEntity();
        usuario.setName("jonas");

        session.persist(usuario);

        session.getTransaction().commit();
        session.close();
Войдите в полноэкранный режим Выход из полноэкранного режима

Здесь мы ссылаемся на созданный нами файл конфигурации, помните, что .xml… Затем мы открываем SessionFactory, которая отвечает за «создание» нашего SQL для нас.

Я надеюсь, что он отлично работает на вашей машине и работает на 100%.

Немного глубже… 🧐

  • Посмотрите на зависимости в файле .pom для Maven
  • Попробуйте создать некоторые отношения между таблицами с помощью Hibernate

Следующие шаги! 😮

Вы можете учиться дальше:

  • Внешние ключи в Hibernate
  • ленивый и энергичный
  • JPA
  • JDBC
  • Репозиторий
  • REST
  • Более сложные вопросы, такие как Query DSL
  • Среди прочих. 🌌

⚠ Внимание!

  • Проверьте выполняемый импорт!
  • Если это не сработало, не отчаивайтесь, это могут быть проблемы с версией, что-то, что вы вставили неправильно. Посмотрите на журнал и поищите в Google или прямо на StackOverFlow 😅. В конце концов, наша работа, помимо создания, заключается в исправлении ошибок 🤣.

В любом случае, поздравляю, что вы зашли так далеко. Надеюсь, вы узнали много нового! 😀

Если вам понравилось, следуйте за мной здесь и в других сетях!

GitHub
LinkedIn

📚

Оцените статью
devanswers.ru
Добавить комментарий