HIBERNATE Uygulama ile birleştirilmesi hibernate.cfg.xml Ö ğ renci Tablosunun Hibernate’e uyarlanması Session, Transaction save, update, delete HQL Criteria
Uygulama İ le Birleştirilmesi İ lk başta web.xml dosyamıza bir listener ekliyoruz. HibernateListener
Sonra HibernateListener sınıfımızı yazıyoruz. public class HibernateListener implements ServletContextListener { public void contextInitialized(ServletContextEvent event) { HibernateUtil.getSessionFactory(); } public void contextDestroyed(ServletContextEvent event) { HibernateUtil.getSessionFactory().close(); }
HibernateUtil Sınıfı public class HibernateUtil { private static final SessionFactory sessionFactory; static { try { // hibernate.cfg.xml dosyasından uyarlanıyor sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); }
HibernateUtil Sınıfı public static final ThreadLocal session = new ThreadLocal (); public static Session currentSession() throws HibernateException { Session s = (Session) session.get(); if (s == null) { s = sessionFactory.openSession(); session.set(s); } return s; } public static void closeSession() throws HibernateException { Session s = (Session) session.get(); if (s != null) s.close(); session.set(null); } public static SessionFactory getSessionFactory() { return sessionFactory; }
hibernate.cfg.xml Öncelikle “lib” klasörü içinde “hibernate3.jar” ve “postgresql jdbc3.jar” jar dosyaları bulunmalıdır. org.postgresql.Driver 10 jdbc:postgresql://localhost/proje postgres org.hibernate.transaction.JDBCTransactionFactory
Ö ğ renci Tablosu ogrenci_ogrenci_pk_seq
Ö ğ renci Sınıfı public class Ogrenci { Integer ogrenciPk; String ad; String soyad; public Ogrenci(){ super(); } public Ogrenci(String ad,String soyad){ super(); this.ad = ad; this.soyad = soyad; } //getter setter }
Session, Transaction Session session = HibernateUtil.currentSession(); Transaction tx = session.beginTransaction(); try { //işlemler tx.commit(); } catch (Exception e) { System.out.println(e.toString()); tx.commit(); }finally{ HibernateUtil.closeSession(); }
save, update, delete Bir önceki slaytta verilen //işlemler kısmına aşa ğ ıdakiler yazılabilinir. save : Ogrenci ogr = new Ogrenci(“ABC”,“XYZ”); session.save(ogr); update : ogr.setAd(“XXX”); session.update(ogr); delete : session.delete(ogr);
HQL String sorgu = “select o from Ogrenci as o “ + “where o.ogrenciPk = :ogrPk ”; Query query = HibernateUtil.currentSession().createQuery(sorgu); query.setInteger(“ogrPk”,1); List list = query.list();
CRITERIA Criteria cr = HibernateUtil.currentSession(). createCriteria(Ogrenci.class); cr.add(Restrictions.eq(“ogrenciPk”,1)); List list = cr.list();