Promosyon
Unibersidad ng Java
Pag-aaral
Mga kurso
Mga gawain
Mga Survey at Pagsusulit
Mga laro
Tulong
Iskedyul
Internship
Komunidad
Mga gumagamit
Forum
Chat
Mga artikulo
Mga kwento ng tagumpay
Aktibidad
Mga pagsusuri
Mga subscription
Banayad na tema
Artikulo
  • Mga pagsusuri
  • Tungkol sa atin
  • CS50
Magsimula
Simulan ang pag-aaral
  • Mga artikulo
  • Mga may-akda
  • Lahat ng grupo
  • Listahan ng Lahat ng Artikulo
JavaRush /Java Blog /Random-TL /Mga Tanong sa Panayam sa Hibernate
Dr-JohnZoidberg
Antas
Киев
  • 28 February 2021
  • 236 views
  • 0 comments

Mga Tanong sa Panayam sa Hibernate

Nai-publish sa grupo
Java-университет
Ang artikulong ito ay pagsasalin at pagpapahusay ng mga banyagang artikulo (nakalista ang isang listahan ng mga mapagkukunan sa dulo ng artikulo). Pinalawak ang mga sagot sa ilang tanong, ibinibigay ang mga link sa mga mapagkukunan ng third-party na naglalaman ng mga sagot na maaaring lumabas sa proseso ng pagbabasa. 1) Ano ang Hibernate? Ito ay isang balangkas para sa object-relational na pagmamapa ng mga entity sa tradisyonal na relational database. Ang mga pangunahing tampok ng balangkas: 1) Awtomatikong pagbuo at pag-update ng mga talahanayan sa mga database; 2) Dahil ang mga pangunahing query sa database (pag-save, pag-update, pagtanggal at paghahanap) ay ipinakita bilang mga pamamaraan ng balangkas, ang code na isinulat ng developer ay makabuluhang nabawasan; 3) Nagbibigay ng paggamit ng isang SQL-like na wika (HQL - hibernate query language). Maaaring isulat ang mga query sa HQL kasama ng mga data object (mga klase ng POJO na inihanda para sa pagtatrabaho sa isang database). 2) Paano mag- hibernate помогает в программировании? Hibernate реализует ряд фичь которые значительно упрощают работу разработчика. — Одной из таких фичь является то, что hibernate позволяет разработчику избежать написания большинства SQL requestов (они уже реализованы , вам надо просто использовать методы которые предоставляет фреймворк). — Под бортом у Hibernate есть куча полезных инструментов которые значительно ускоряют работу applications, самыми примечательными из них являются двухуровневое кэширования и тонкие настройки lazy и fetch изъятия. — Сам генерирует таблицы в базу данных. 3) Способы конфигурации работы с Hibernate. Существует четыре способа конфигурации работы с Hibernate : — используя аннотации; — hibernate.cfg.xml; — hibernate.properties; — persistence.xml. Самый частый способ конфигурации : через аннотации и файл persistence.xml, что касается файлов hibernate.properties и hibernate.cfg.xml, то hibernate.cfg.xml главнее (если в приложение есть оба file, то принимаются настройки из file hibernate.cfg.xml). Конфигурация annotationми, хоть и удобна, но не всегда возможна, к примеру, если для разных баз данных or для разных ситуаций вы хотите иметь разные конфигурацию сущностей, то следует использовать xml файлы конфигураций. 4) Какие ключевые интерфейсы использует Hibernate? Существует пять ключевых интерфейсов которые используются в каждом приложении связанном с Hibernate: — Session interface; — SessionFactory interface; — Configuration interface; — Transaction interface; — Query and Criteria interfaces. 5) Какая роль интерфейса Session в Hibernate? Session — это основной интерфейс, который отвечает за связь с базой данных. Так же, он помогает создавать an objectы requestов для получение персистентных an objectов. (персистентный an object — an object который уже находится в базе данных; an object requestа — an object который получается когда мы получаем результат requestа в базу данных, именно с ним работает приложение). Обьект Session можно получить из SessionFactory : Session session = sessionFactory.openSession(); Роль интерфейса Session: — является оберткой для jdbc подключения к базе данных; (https://ru.wikipedia.org/wiki/Java_Database_Connectiv..) — является фабрикой для транзакций (согласно официальной documentации transaction — аllows the application to define units of work, что , по сути, означает что транзакция определяет границы операций связанных с базой данных). — является хранителем обязательного кэша первого уровня. 6) Какая роль интерфейса SessionFactory в Hibernate? Именно из an object SessionFactory мы получаем an objectы типа Session. На все приложение существует только одна SessionFactory и она инициализируеться вместе со стартом applications. SessionFactory кэширует мета-date и SQL requestы которые часто используются приложением во время работы. Так же оно кэширует информацию которая была получена в одной из транзакций и может быть использована и в других транзакциях. Обьект SessionFactory можно получить следующим обращением: SessionFactory sessionFactory = configuration.buildSessionFactory(); 7) Какие типы коллекций представлены в Hibernate? Bag, Set, List, Map, Array. 8) What собой являет коллекция типа Bag и зачем она используется? Своей реализации тип коллекции Bag очень напоминает Set, разница состоит в том, что Bag может хранить повторяющиеся значения. Bag хранит непроиндексированный список элементов. Большинство таблиц в базе данных имеют индексы отображающие положение element данных один относительно другого, данные индексы имеют представление в таблице в виде отдельной columns. При an objectно-реляционном маппинге, значения columns индексов мапится на индекс в Array, на индекс в List or на key в Map. Если вам надо получить коллекцию an objectов не содержащих данные индексы, то вы можете воспользоваться коллекциями типа Bag or Set (коллекции содержат данные в неотсортированном виде, но могут быть отсортированы согласно requestу). 9) Какая разница в работе методов load(); и get();? Метод load(); обычно используется когда в не уверен что запрашиваемый an object уже находится в базе данных. Если an object не найден, то метод кидает исключение Если an object найден — метод возвращает прокси an object, который является ссылкой на an object находящийся в базе данных (request в базу данных еще не был осуществлен, своего рода lazy изъятие), непосредственный request к базе данных когда мы непосредственно обращаемся к необходимому an objectу через прокси an object. Метод get(); используется тогда, вы на 100 процентов не уверены есть ли запрашиваемый an object в базе данных. В случае обращение к несуществующему an objectу, метод get(); вернет null. В случае нахождения an object, метод get(); вернет сам an object и request в базу данных будет произведен немедленно. 10) What такое Lazy fetching(изъятие) в Hibernate? Тип изьятия Lazy, в Hibernate, связан с листовыми(дочерними) сущностями и определяют политику совместного изъятия, если идет request на изъятие сущности родителя. Простой пример: Есть сущность Дом. Он хранит информацию о своем номере, улице, количество квартир и информацию о семьях которые живут в квартирах, эти семьи формируют дочернюю сущность относительно сущности Дом. Когда мы запрашиваем информацию о Доме, нам может быть совершенно ненужным знать информацию семьях которые в нем проживают, тут нам на помощь приходит lazy(ленивое) изъятие(fetching) которая позволяет сконфигурировать сущность Дом, чтобы информацию о семьях подавалась только по востребованию, это значительно облачает request и ускоряет работу applications. ©dev-bay
Python-университет
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Matuto
  • Курси програмування
  • Pagpaparehistro
  • Kurso sa Java
  • Tulong sa Mga Gawain
  • Pagpepresyo
  • Mga Proyekto sa Laro
Komunidad
  • Mga gumagamit
  • Mga artikulo
  • Forum
  • Chat
  • Mga Kwento ng Tagumpay
  • Aktibidad
kumpanya
  • Tungkol sa atin
  • Mga contact
  • Mga pagsusuri
  • FAQ
  • Suporta
JavaRush Ang JavaRush ay isang online na kurso para sa pag-aaral ng Java programming mula sa simula. Ang kursong ito ay isang perpektong paraan upang makabisado ang Java para sa mga nagsisimula. Naglalaman ito ng 1200+ na gawain na may agarang pag-verify at isang mahalagang saklaw ng teorya ng Java fundamentals. Upang matulungan kang magtagumpay sa edukasyon, nagpatupad kami ng isang hanay ng mga tampok na motibasyon: mga pagsusulit, mga proyekto sa pag-coding, nilalaman tungkol sa mahusay na pag-aaral at karera ng developer ng Java.
Sundan mo kami
Ang mga Programmer ay Ginawa, Hindi Ipinanganak © 2025 JavaRush
I-download ang App
  • Google Play
  • App Store
Mastercard Visa
Ang mga Programmer ay Ginawa, Hindi Ipinanganak © 2025 JavaRush