Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
kmi
55 / 55 / 13
Регистрация: 26.04.2010
Сообщений: 173
04.09.2012, 10:32

Как и где правильно открывать метод

04.09.2012, 10:32. Просмотров 1533. Ответов 11
Метки (Все метки)

Ответ

Я сделал такой класс, назвал HibernateUtil:

Java
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
package my.pack.dao;
 
import java.util.Date;
import java.text.SimpleDateFormat;
import org.hibernate.cfg.Configuration;
import org.hibernate.SessionFactory;
 
public class HibernateUtil 
{
  private static SessionFactory sessionFactory;
  
  static 
  {
    try 
    {
      sessionFactory = new Configuration().configure().buildSessionFactory();
    }
    catch (Throwable ex) 
    {
      SimpleDateFormat sdf_dts = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss.SSS");
      String time = sdf_dts.format(new Date());
      String message = PlatformError.DBConnectionFail.message() + " Ошибка создания фабрики сессий.";
      System.out.println(time + message + " [" + ex + "]");
      ex.printStackTrace(System.out);
      // throw ex;
    }
  }
 
  public static SessionFactory getSessionFactory() 
  {
    return sessionFactory;
  }
}
Далее, когда мне нужно получить сессию, делаю так:

Java
1
Session session = HibernateUtil.getSessionFactory().openSession();
При первом вызове HibernateUtil создаёт фабрику, одну на экземпляр приложения. А далее эта фабрика используется во всех классах, работающих с DAO.

Добавлено через 14 минут
Далее работа с сессией выглядит так:

1. при чтении данных:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Session session = null;
    try
    {
      session = HibernateUtil.getSessionFactory().openSession();
      MyDAO dao = (MyDAO) session.get(MyDAO.class, new Long(id));
    }
    catch (Exception ex)
    {
      // обработка ошибок
    }
    finally
    {
      if (session != null && session.isOpen()) session.close();
    }
2. при работе с транзакциями

Java
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
Session session = null;
    try
    {
      session = HibernateUtil.getSessionFactory().openSession();
      MyDAO dao = new MyDAO();
      Transaction tx = session.beginTransaction();
      try
      {
        session.save(dao);
        session.flush(); // обязательно перед коммитом транзакции
        tx.commit();
      }
      catch (Exception ex)
      {
        if (tx != null) tx.rollback();
        // обрабатываем ошибку запроса
      }
    }
    catch (Exception ex)
    {
      // обработка остальных ошибок
    }
    finally
    {
      if (session != null && session.isOpen()) session.close();
    }


Вернуться к обсуждению:
Как и где правильно открывать метод
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.09.2012, 10:32

Как правильно открывать и читать файлы?
Здравствуйте, не пойму из-за чего начала вылетать следующая ошибка при вызове...

Как правильно открывать файл и записывать/читать из него
Как правильно открывать файл и записывать/читать из него? На разных сайтах и...

Как открывать следующую форму правильно не нарушая принцыпы WPF(MVVM)?
Как открывать следующую форму правильно не нарушая принцыпы WPF(MVVM)? К...

0
Другие темы раздела
Java EE Как правильно отнести One to many http://www.cyberforum.ru/java-j2ee/thread645153.html
Всем привет. Я только начал изучать Hibernate. Возник вопрос, который я не могу понять. Есть один класс, в нем есть экземпляр другого класса. Я хочу их сохранить в sql. Первая проблема. Как быть с...
Java EE Очень странная ошибка. (Spring MVC) @RequestMapping(value = "/voylist", method = RequestMethod.GET) public Object listVoyages(HttpServletRequest request, HttpServletResponse response, ModelMap model) { PersistenceManager pm =... http://www.cyberforum.ru/java-j2ee/thread644272.html
PersistentTokenBasedRememberMeServices Java EE
Необходимо реализовать функцию RememberMe, только не с помощью xml описаний, а через java код, использовать можно все стандартное ничего переопределять не надо, может кто знает как сделать или...
отслеживание изменений Java EE
И вновь день добрый. как отследить, изменилось ли определенное поле в jsp, непосредственно через Controller ?
Java EE ошибка названия в hibernate http://www.cyberforum.ru/java-j2ee/thread642942.html
Доброго времени суток. столкнулся с такой проблемой: есть схема в БД, называется COLLECT... не могу ее вызвать, т.к. "collect" зарезервирована под название функции кусок описания функции: ...
Java EE Eclipse: как запустить проект с ejb и jsf? Есть проект с использованием ejb и jsf. Как его запустить под Eclipse? Сервера: Tomcat и Jboss. Добавлено через 3 часа 48 минут При запуске приложения через сервер Jboss, падает следующая... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru