歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Hibernate框架的增刪改查代碼詳解

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

日期:2017/3/1 10:49:07   编辑:Linux編程

一 思路分析

在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