歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Hibernate框架的增刪改查代碼詳解

一  思路分析

    在Hibernate框架的開發中,session對象是最核心的技術,增、刪、該都需要用到,在通過id查詢的時候用到的也是session對象,但是當有復雜查詢的時候用到的是Query或Criteria類,這三個類都是在同一個包寫的,在hibernate包下

二  Query類和Cirteria類的介紹

1.HQL(hibernate Query Language)面向對象的查詢語言,與sql不同,HQL中的對象名師區分大小寫的, HQL中查的是對象而不是和表,並且支持多態;HQL主要通過Query來操作,Query的創建方式:

    Query q = session.createQuery(hql);

l       from Person

l       from User user where user.name=:name

l       from User user where user.name=:name and user.birthday < :birthday

2.Criteria

    Criteria是一種比HQL更面向對象的查詢方式;Criteria的創建方式:

    Criteria crit = session.createCriteria(DomainClass.class);

    簡單屬性條件如:criteria.add(Restrictions.eq(propertyName, value)),

    criteria.add(Restrictions.eqProperty(propertyName,otherPropertyName))

三  代碼分析

1.添加任何一個對象

    public static void add(Object obj) {

       Session session = null;

       Transaction tx = null;

       try {

           session = HibernateUtil.getSession();

           tx = session.beginTransaction();// 開啟事務

           session.save(obj);// 沒有更新數據庫

           tx.commit();// 執行提交事務的時候更新數據庫

       } finally {

           // 使資源得到釋放

           if (session != null) {

              session.close();

           }

       }

    }

    2.刪除任何一個類中的文件

    public static void delete(Object obj) {

       Session session = null;

       Transaction tx = null;

       try {

           session = HibernateUtil.getSession();

           tx = session.beginTransaction();// 開啟事務

           session.delete(obj);

           // 刪除之後為瞬時狀態

           tx.commit();

       } finally {

           // 使資源得到釋放

           if (session != null) {

              session.close();

           }

       }

    }

 

   

    3.更新任何一個類中的對象

    public static void update(Object obj) {

       Session session = null;

       Transaction tx = null;

       try {

           session = HibernateUtil.getSession();

           tx = session.beginTransaction();// 開啟事務

           session.update(obj);

           tx.commit();

       } finally {

           // 使資源得到釋放

           if (session != null) {

              session.close();

           }

       }

    }

Copyright © Linux教程網 All Rights Reserved