Hibernate для початківців

Я стикався (та й не тільки я) з проблемою розгортання Hibernate і вирішив спробувати висвітлити дану тему. Hibernate — це популярний framework, мета якого зв'язати ООП і реалізаційну базу даних. Робота з Hibernate скоротить час розробки проекту в порівнянні із звичайним jdbc.

Для новачка програмування налаштування framework часто викликає труднощі. Допомогу ком'юніті з освітленням базових проблем допоможе початківцям освоювати мови програмування швидше. Стаття призначена тільки для початківців в Java, які вперше розгортають hibernate. Я розгортав hibernate на базі ліцензійної IDEA.
Maven framework для автоматизації складання проекту на основі POM, що дозволяє підключати з інтернету залежності, не завантажуючи бібліотеки в проект. POM (project object model) -декларативне опис проекту. Копіюємо назва бібліотек у форматі xml з сайту mvnrepository.com.

Читати далі →

«Нещодавно запустили систему онлайн-продажу для BMW»: T-Systems про роль Java і конференцій у своїй діяльності

Як з боку зрозуміти, наскільки активно IT-компанія використовує Java? Один з ознак: якщо компанія спонсорує Java-конференцію і відправляє туди спікера, значить, активно. Тому напередодні Joker 2016 ми вирішили розпитати наших спонсорів про Java та участі у конференції. Перший пост — про T-Systems.



Ми розпитали чотирьох співробітників компанії: одних про їх особистому досвіді Java-розробки в T-Systems, інших — про компанії в цілому. Нашими співрозмовниками стали:

  • Кирило Чернін — HR бізнес-партнер
  • Дмитро Александров — провідний експерт-програміст (спікер Joker)
  • В'ячеслав Круглов — Java-розробник, team lead (спікер Joker)
  • Марія Зернова — спеціаліст по внутрішнім комунікаціям



Читати далі →

Документація розробника Hibernate – Глава I. Доступ до бази даних

Документація розробника Hibernate – Глава II. Транзакції і контроль багатопоточності

Документація розробника Hibernate – Глава IV. Пакетна обробка

Документація розробника Hibernate – Глава V. Блокування

Представляю вашій увазі переклад п'ятої глави офіційній документації Hibernate.

Переклад статті актуальний для версії Hibernate 4.2.19.Final

Зміст
 5.1. Оптимістичні блокування
   5.1.1 Виділений номер версії
   5.1.2. Timestamp
 5.2. Песимістичні блокування

Читати далі →

Як написати гарний код і завалити проект

— Ми забрели в зону з сильним магічним індексом-пояснив він, — Колись давно тут утворилося потужне магічне поле.
– Саме так, — відповів проходить повз кущ.
Террі Пратчетт, Колір чарівництва


Підтримувати некрасивий код неприємно. В негарному коді складніше розібратися, він частіше буває застарілим і найчастіше містить помилки. Однак це чесна неприємність — ти відразу знаєш, що з кодом не все впорядку і пишеш додаткові тести перед зміною, кілька разів перевіряєш, закладаєш в оцінках час на те, щоб все полагодити.

Красивий код в цьому відношенні інший: ти його легко читаєш, у ньому зазвичай використовуються нові технології і ти охоче віриш, що ось він-то працює оптимально і в ньому немає помилок. Хоча це-то якраз легко може бути неправдою.



У цій статті я покажу що не можна вірити жодному кодом (всі брешуть) і продемонструю кілька цікавих помилок.


Читати далі →

Документація розробника Hibernate – Глава VI. Кешування

Представляю вашій увазі переклад шостої глави офіційній документації Hibernate.

Що собою являють кеш першого і другого рівня в Hibernate, показано на наступний діаграмі (прим. автора).

image
6.1. Кеш запитів
Якщо у вас є запити, які виконуються знову і знову, з одними і тими ж параметрами, кешування запитів надасть виграш в продуктивності.

Кешування вводить додаткові накладні витрати в області виконання транзакцій. Наприклад, якщо ви кэшируете результати запиту по відношенню до якого-небудь об'єкту, Hibernate необхідно відстежувати, чи були закомічені які-небудь зміни по об'єкту, і відповідно з цим, анулювати записи в кеші. На додаток, плюси від кешування запитів обмежені, і дуже залежать від шаблонів використання вашого додатка. З цих причин, Hibernate за замовчуванням вимикає кешування запитів.

Читати далі →

Spring - Hibernate: асоціація один до багатьох

Продовжуємо цикл статей — переказів за Spring і Hibernate, krams .

Попередня стаття:
Spring MVC 3, Анотації Hibernate, MySQL. Туторіал по інтеграції

Введення.
У цьому уроці ми познайомимося з використанням відносини один-до-багатьох, використовуючи анотації Hibernate і Spring MVC 3. Ми будемо використовувати аннотоцию @OneToMany для вказівки відносин між нашими об'єктами. Ми не будемо використовувати каскадні типи або fetch-стратегії, замість цього ми скористаємося стандартними налаштуваннями @OneToMany.

Що таке асоціація один-ко-багатьом?
Асоціація один-до-багатьох виникає тоді, коли кожного запису в таблиці А, відповідає безліч записів у таблиці Б, але кожен запис у таблиці Б має лише одну відповідний запис в таблиці А.

Специфікація нашої програми.

Додаток є простий CRUD системою управління списком записів. Кожен запис відповідає одній особі, вона містить персональні дані та дані кредитної картки. Кожна особа може володіти кількома картками. Так само ми додамо систему редагування осіб і кредиток.

Нижче наведені скріншоти з майбутнього додатки:



Читати далі →