1 ,void delete ( Object entity ) : 刪除指定持久化實例
public void removePerson( int personid)
{
//先加載特定的實例
Object p = getHibernateTemplate().load( Person.class , new Integer( personid));
//刪除特定實例
getHibernateTemplate().delete (p);
}
2 ,deleteAll ( Collection entities ) : 刪除集合內全部持久化類實例
3 ,find ( String queryString ) : 根據HQL查詢字符串來返回實例集合
Public List getPersons()
{
//返回Person的全部實例
return getHibernateTemplate().find ( " from Person " );
}
4 ,findByNamedQuery ( String queryName) : 根據命名查詢返回實例集合
5 ,get ( Class entityClass , Serializable id ) : 根據主鍵加載特定持久化類的實例
public Person getPerson()
{
//返回特定主鍵對應的Person實例
return (Person)getHibernateTemplate().get (Person.class , new Integer(person id));
}
6 ,save ( Object entity ) : 保存新的實例
7 ,saveOrUpdate ( Object entity ): 根據實例狀態,選擇保存或者更新
8 ,update ( Object entity ) : 更新實例的狀態,要求entity是持久狀態
9 ,setMaxResults ( int maxResults ) : 設置分頁的大小。
HibernateTemplate的 更靈活 的用法 :
更靈活的訪問是通過以下兩個方法完成的:
Object execute ( HibernateCallback action ) ;
List execute ( HibernateCallback action );
這兩個方法都需要一個HibernateCallback的實例,可以在任何有效的hibernate數據訪問中使用。用法靈活,解決了Spring封裝Hibernate后靈活性不足的缺陷。 HibernateCallback 是一個接,該接口只有一個方doInHibernate ( org.hibernate.Session session ), 該方法只有一個參數Session.































注意:在方法doInHibernate內可以訪問到Session,該session是完全綁定到當前線程的Session實例,保證在對于復雜的持久層訪問時,依然可以使用Hibernate的訪問方式。