Инфоурок Информатика ПрезентацииHibernate, fundamentals. Part 4. Для студентов старших курсов университета

Hibernate, fundamentals. Part 4. Для студентов старших курсов университета

Скачать материал
Скачать материал "Hibernate, fundamentals. Part 4. Для студентов старших курсов университета"

Получите профессию

Технолог-калькулятор общественного питания

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Специалист органа опеки

Описание презентации по отдельным слайдам:

  • Hibernate cashe.Part 4Для студентов 
старших курсов университетов
Ст.препода...

    1 слайд

    Hibernate cashe.
    Part 4
    Для студентов
    старших курсов университетов
    Ст.преподаватель Дудник О.А.

  • Hibernate cache Довольно часто в java приложениях с целью снижения нагрузки...

    2 слайд

    Hibernate cache

    Довольно часто в java приложениях с целью снижения нагрузки на БД используют кеш.
    Прежде всего Hibernate cache — это 3 уровня кеширования:

    Кеш первого уровня (First-level cache);
    Кеш второго уровня (Second-level cache);
    Кеш запросов (Query cache);

  • Кеш первого уровняКеш первого уровня всегда привязан к объекту сессии. Hibe...

    3 слайд

    Кеш первого уровня


    Кеш первого уровня всегда привязан к объекту сессии. Hibernate всегда по умолчанию использует этот кеш и его нельзя отключить. Давайте сразу рассмотрим следующий код:

    SharedDoc persistedDoc = (SharedDoc) session.load(SharedDoc.class, docId); System.out.println(persistedDoc.getName()); user1.setDoc(persistedDoc); persistedDoc = (SharedDoc) session.load(SharedDoc.class, docId); System.out.println(persistedDoc.getName()); user2.setDoc(persistedDoc);

  • Кеш первого уровняВ этом примере будет выполнен 1 запрос в базу, несмотря на...

    4 слайд

    Кеш первого
    уровня
    В этом примере будет выполнен 1 запрос в базу, несмотря на то, что делается 2 вызова load(), так как эти вызовы происходят в контексте одной сессии. Во время второй попытки загрузить план с тем же идентификатором будет использован кеш сессии.
    При использовании методов save(), update(), saveOrUpdate(), load(), get(), list(), iterate(), scroll() всегда будет задействован кеш первого уровня.

  • Кеш второго уровня Кеш второго уровня привязан к объекту-фабрике сессий...

    5 слайд


    Кеш второго
    уровня



    Кеш второго уровня привязан к объекту-фабрике сессий (Session Factory object).
    Session session = factory.openSession(); SharedDoc doc = (SharedDoc) session.load(SharedDoc.class, 1L); System.out.println(doc.getName()); session.close(); session = factory.openSession(); doc = (SharedDoc) session.load(SharedDoc.class, 1L); System.out.println(doc.getName()); session.close();

  • Кеш второго уровня В данном примере будет выполнено 2 запроса в базу, это...

    6 слайд

    Кеш второго
    уровня


    В данном примере будет выполнено 2 запроса в базу, это связано с тем, что по умолчанию кеш второго уровня отключен. Для включения необходимо добавить следующие строки в Вашем конфигурационном файле JPA (persistence.xml):

  • Кеш второго уровня  
//или в более старых версиях //

    7 слайд

    Кеш второго
    уровня


    <property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.SingletonEhCacheProvider"/>
    //или в более старых версиях //
    <property name="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider"/> <property name="hibernate.cache.use_second_level_cache" value="true"/>

  • Кеш второго уровняНу и в завершение еще нужно указать самому хибернейту, что...

    8 слайд

    Кеш второго
    уровня
    Ну и в завершение еще нужно указать самому хибернейту, что именно кешировать. К счастью, это очень легко можно сделать с помощью аннотаций, например так:
    @Entity
    @Table(name = "shared_doc")
    @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class SharedDoc{
    private Set<User> users; }

  • Кеш третьегоуровняQuery query = session.createQuery(&quot;from SharedDoc doc wher...

    9 слайд

    Кеш третьего
    уровня
    Query query = session.createQuery("from SharedDoc doc where doc.name = :name"); SharedDoc persistedDoc = (SharedDoc) query.setParameter("name", "first").uniqueResult(); System.out.println(persistedDoc.getName()); user1.setDoc(persistedDoc);
    persistedDoc = (SharedDoc) query.setParameter("name", "first").uniqueResult(); System.out.println(persistedDoc.getName()); user2.setDoc(persistedDoc);

  • Кеш третьегоуровняРезультаты такого рода запросов не сохраняются ни кешом пе...

    10 слайд

    Кеш третьего
    уровня
    Результаты такого рода запросов не сохраняются ни кешом первого, ни второго уровня. Это как раз то место, где можно использовать кеш запросов. Он тоже по умолчанию отключен. Для включения нужно добавить следующую строку в конфигурационный файл:
    <property name="hibernate.cache.use_query_cache" value="true"/>
    А также добавить
    query.setCacheable(true);

Получите профессию

Няня

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Краткое описание документа:

Довольно часто в java приложениях с целью снижения нагрузки на БД используют кеш. Не много людей реально понимают как работает кеш под капотом, добавить просто аннотацию не всегда достаточно, нужно понимать как работает система.

    Кэш-память хранит представление текущего состояния БД для приложения, либо в памяти или на диске компьютера сервера приложения. Кэш – это локальная копия данных. Кэш находится между приложением и БД.

Hibernate предоставляет двухслойную систему кэширования с первым уровнем КЭШа (сессия) и подключаемым КЭШем второго уровня. Кэш первого уровня активен всегда – он используется для разрешения циклических ссылок в вашем графе объектов и для оптимизации производительности на одну единицу работы. (Процессный или кластерный) Кэш второго уровня с другой стороны является опциональным и лучше всего подходит для классов, которые в основном считываются.

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 660 337 материалов в базе

Скачать материал

Другие материалы

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 06.02.2015 583
    • PPTX 110 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Dudnik Oxana Antonovna. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Dudnik Oxana Antonovna
    Dudnik Oxana Antonovna
    • На сайте: 9 лет и 3 месяца
    • Подписчики: 1
    • Всего просмотров: 27319
    • Всего материалов: 37

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Интернет-маркетолог

Интернет-маркетолог

500/1000 ч.

Подать заявку О курсе

Курс повышения квалификации

Использование нейросетей в учебной и научной работе: ChatGPT, DALL-E 2, Midjourney

36/72 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 620 человек из 77 регионов
  • Этот курс уже прошли 951 человек

Курс профессиональной переподготовки

Педагогическая деятельность по проектированию и реализации образовательного процесса в общеобразовательных организациях (предмет "Математика и информатика")

Учитель математики и информатики

300 ч. — 1200 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 38 человек из 18 регионов
  • Этот курс уже прошли 33 человека

Курс повышения квалификации

Теоретические и методологические основы преподавания информатики с учётом требований ФГОС ООО

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 151 человек из 49 регионов
  • Этот курс уже прошли 1 717 человек

Мини-курс

Продуктовый успех: стратегии и инструменты для создания, улучшения и продвижения продуктов на рынке

6 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Развитие коммуникативных и здоровьесберегающих навыков

8 ч.

1180 руб. 590 руб.
Подать заявку О курсе

Мини-курс

Общие понятия и диагностика антивитального поведения

3 ч.

780 руб. 390 руб.
Подать заявку О курсе