АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Профессиональная реализация

Читайте также:
  1. X. Цель - Общественное положение, профессиональная репутация, карьера, честолюбие
  2. Административно-правовые нормы, их действие и реализация.
  3. Алгоритмизация модели и её машинная реализация
  4. Алгоритмы методов и их реализация в MS EXCEL
  5. Б) Профессиональная переподготовка специалистов.
  6. В4.Реализация и толкование норм международного права.
  7. Вопрос 27. Профессиональная деятельность и личность педагога системы специального образования
  8. Вопрос 38. Профессиональная реабилитация лиц с ограниченной трудоспособностью
  9. Вопрос 39. Профессиональная ориентация и профессиональное образование лиц с ограниченной трудоспособностью
  10. Вопрос: Субъективная реализация переходного мировоззрения на примере Никколо Макиавелли.
  11. Выбор профессии и профессиональная подготовка
  12. Гарантии и компенсации. Профессиональная подготовка, переподготовка и повышение квалификации медицинских работников.

Используя заданную выше последовательность, для инициализации mapping-файлов и для корректного манипулирования соединением с базой данных создается класс ConnectionFactory. Было замечено, что в некоторых версиях hibernate, несмотря на директиву autoReconnect=true, автоматическое пере­подключение к БД происходит со второго раза, то есть подключение происходит сразу же, но появляется исключение о невозможности подключиться к БД.

/* пример # 8: инициализация mapping и подключение к БД:

ConnectionFactory.java */

package com.hib;

import net.sf.hibernate.HibernateException;

import net.sf.hibernate.MappingException;

import net.sf.hibernate.Session;

import net.sf.hibernate.SessionFactory;

import net.sf.hibernate.cfg.Configuration;

import java.util.Date;

 

public class ConnectionFactory {

public static long timer = 0;

public static SessionFactory sessionFactory = null;

 

public static void initConnectionFactory() {

Date dt = new Date();

timer = dt.getTime();

try {

//добавление mapping-файлов в конфигурацию подключения

Configuration cfg = new Configuration().addClass(Student. class).addClass(Course. class);

 

//создание подключения к БД

sessionFactory = cfg.buildSessionFactory();

} catch (MappingException e) {

System.err.print(e);

} catch (HibernateException e) {

System.err.print(e);

destroy();

}

}

public static Session getOrInitSession() {

try {

Date curDate = new Date();

long curTime = curDate.getTime();

long tenminutes = 10 * 60 * 1000;

 

if (curTime - timer > tenminutes){

destroy();

}

else {

curDate = new Date();

timer = curDate.getTime();

}

if (sessionFactory == null) {

initConnectionFactory();

}

return sessionFactory.openSession();

 

} catch (HibernateException e) {

System.err.print(e);

destroy();

return null;

}

}

public static void destroy() {

timer = 0;

try {

//необходимо вызывать, т.к. иначе будут утечки памяти

sessionFactory.close();

} catch (Exception e) {

e.printStackTrace();

}

sessionFactory = null;

}

}

Данный класс проверяет наличие подключения к БД и сохраняет время проверки. Если на момент проверки класс «простаивает» больше 10 минут, то идет повторное подключение к базе данных. В случае удаления класса он предотвращает утечки памяти. Хотя в Hibernate есть средства для того, чтобы исключить необходимость подключать каждый hbm.xml файл по отдельности, всё же лучше это делать вручную во избежание указанных выше ошибок.

Этот класс обрабатывает ошибки, которые возникали на практике при работе c Hibernate, JDBC драйвером MySQL и сервером баз данных MySQL.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)