Зимовий режим - Повне керівництво зі спячої системи

Зміст:

Anonim

Що таке спячий режим?

Hibernate - це об'єктивна рамка стійкості Java на основі відкритого коду (ORM). Це інструмент для картографування ORM в Java. Hibernate розроблений з необхідністю зменшити складність під час підключення реляційної бази даних через Java. Hibernate Framework призначений для відображення об'єктів java для реалізації об'єктно-орієнтованого програмування у реляційній базі даних. Ось як сплячий підключається до реляційної бази даних для виконання запитів:

  • Hibernate підключається безпосередньо до вказаної бази даних та використовує сплячу мову запитів (HQL) для виконання запитів та відображення результатів запитів до об’єктів Java.
  • Hibernate використовує властивості, встановлені в XML-файлі конфігурації Hibernate, для відображення результатів запитів на об’єкти Java.
  • З'єднання з базою даних створюється за допомогою сеансу, який допомагає зберегти та отримати стійкий об’єкт Java.
  • Сеанс створюється за допомогою заводського інтерфейсу Session. В ідеальному випадку на базі даних має бути лише один заводський сеанс.

Порівняння сплячого та JDBC

Ось таблиця порівняння, що показує порівняння між сплячим та JDBC:

ЗимуєJDBC
Hibernate містить конкретні класи, які забезпечують логіку котлоагрегату.JDBC надає лише інтерфейси та абстрактні класи.
Усі винятки, кинуті зі сплячки, не перевіряються.Усі класи JDBC кидають перевірені винятки.
Він не потребує більшого управління ресурсами і робить це внутрішньо.Це вимагає більшого управління ресурсами, як відкриття та закриття ресурсів.
Зберігає об’єкти java безпосередньо.Він не може безпосередньо зберігати об'єкти.
Підтримує незалежні запити бази даних.Підтримує запити, характерні для бази даних.
Підтримує кешування.Він не підтримує кешування.
Підтримка ледачого завантаження.Він не підтримує ледачого завантаження.

Зимова рамкова архітектура

Зимова сплячка дотримується шаруватої архітектури та має такі шари:

  • Прикладний шар Java
  • Зимовий шар
  • Рівень API Backend
  • Шар бази даних

Зимозахисний шар містить такі компоненти, які є:

1. Об'єкт конфігурації в сплячому режимі

Це перший об'єкт, який потрібно створити для встановлення з'єднання з базою даних за допомогою сплячого режиму. Він повинен бути ідеально створений один раз, під час ініціалізації програми. Об'єкт конфігурації забезпечує наступне:

  • Підключення до бази даних: Підключення до бази даних встановлюється за допомогою одного або декількох файлів конфігурації. Файли перебувають у сплячому режимі. Властивості та hibernate.cfg.xml.
  • Картографування: Це створює відображення між класами java та таблицями реляційних баз даних.

2. Засідання заводу

Об'єкт конфігурації, створений на кроці 1, використовується для створення заводського об'єкта сеансу, який робить готову конфігурацію в сплячому режимі за допомогою наданого файлу конфігурації та робить можливим створення об’єкта сеансу. Оскільки фабрика сеансів є важким об'єктом, вона зазвичай створюється один раз на стартовій фазі програми. Необхідно встановити заводський об'єкт з декількома сесіями у випадку, якщо потрібно встановити підключення до декількох баз даних. Також фабрика сеансів є безпечним для потоків об'єктом.

3. Сесія

Об'єкт сеансу встановлює фізичний зв'язок з базою даних. Це легкий об’єкт, і його слід створювати щоразу, коли потрібно взаємодія з базою даних. Якщо об’єкт потрібно зберігати або його потрібно отримати, це можна зробити лише за допомогою об’єкта сеансу. Об'єкт сесії слід закрити, як тільки завершиться необхідна операція, оскільки вони не захищені потоком.

4. Трансакція

Це необов'язковий об'єкт і являє собою одиницю роботи, виконану з базою даних. Об'єкт транзакції гарантує, що або всі операції повинні виконуватись, або жодна з них не повинна виконуватись. Це однонитковий і недовговічний об’єкт.

5. Об'єкт запиту

Цей об'єкт використовує структуровану мову запитів (SQL) або Hibernate Query Language (HQL) для отримання даних із бази даних та екземплярів об'єктів. Об'єкт запиту може бути використаний для обмеження виводу, повернутого з запиту, прив'язування параметрів запиту та виконання запиту.

Запити

Тут ми виконаємо деякі запити, які зроблять речі більш зрозумілими. Розглянемо працівника суб'єкта господарювання, який має клас:

Код:

Package com.edubca.hibernatetest;
@Entity
@Table(name = "EMPLOYEE")
public class Employee implements Serializable
(
private static final long serialVersionUID = -1798070786993123455L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "empID")
private Integer empID;
@Column(name = "NAME")
private String empName;
@Column(name = "SALARY")
private Integer salary;
//Getters and setters
)

Hibernate вимагає файлу XML під назвою hibernate.cfg.xml, який виглядає так:

Код:


com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/hibernatetest
edubca
edubcauser
org.hibernate.dialect.MySQLDialect
create

Нижче наведено код, який показує, як відбувається вставка та пошук у базі даних за допомогою сплячого режиму:

Код:

//Create Configuration object
Configuration con=new AnnotationConfiguration().configure(new File("hibernate.cgf.xml"));
// create session factory using configuration
SessionFactory fact=conf.buildSessionFactory();
//get session from session factory
Session session=fact.openSession();
//Instantiate and populate Employee entity object
Employee emp=new Employee();
emp.setempID(1);
emp.setempName(“Yash”);
emp.setSalary(40000);
Employee emp1=new Employee();
emp1.setempID(2);
emp1.setempName(“Aman”);
emp1.setSalary(42000);
//persist emp object
session.save(emp);
//persist emp1 object
session.save(emp1);
//retrieve data from database
Query query=session.createQuery(“from Employee”);
List list= query.list();
For(Employee e : list)(
System.out.println(“Employee with ID ” + e.getempID() + “ has Name ” + e.getempName() + “ has salary ” + e.getsalary());
)

Вихід:

Співробітник з ID 1 має ім'я Яш із зарплатою 40000.
Працівник з ідентифікаційним номером 2 має ім'я Аман із зарплатою 42000.

Висновок

У цій статті ми детально висвітлювали сплячку, її архітектуру, порівняння з JDBC та прикладами коду. Ми також зазначили, що сплячий режим забезпечує простий та ефективний спосіб взаємодії з базою даних.

Рекомендовані статті

Це посібник зі Зимової системи. Тут ми обговорюємо архітектуру, компоненти та порівняння сплячого та JDBC з прикладами коду. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Рамки в Java
  2. Що таке рамки автоматизації тестування?
  3. HADOOP Framework
  4. .Net Core vs .Net Framework
  5. 2D графіка на Java
  6. Киньте проти кидок | Топ 5 відмінностей, які ви повинні знати