1. Hibernate有幾種查詢方法
Hibernate有4種查詢方法。
HQL 通過Hibernate提供的查詢語言進行查詢。Hibernate Query lanague
EJBQL(JPQL 1.0) 是EJB提供的查詢語言
QBC(query by cretira)通過Cretira介面進行查詢
QBE(query by Example) 通過Example編程介面進行查詢
從功能強弱上排序:NativeSQL > HQL > EJBQL(JPQL 1.0) >QBC(query by cretira) >QBE(query by Example) 1: QBE (Query By Example) QBC查詢方式。
QBC(Query By Criteria)查詢方式是 Hibernate 提供的「 更加面向對象」的一種檢索方式。 QBC 在條件查詢上比 HQL 查詢更為靈活,而且支持運行時動態天生查詢語句。
在Hibernate 應用中使用 QBC 查詢通常經過 3 個步驟:
(1)使用 Session 實例的 createCriteria() 方法創建 Criteria 對象
(2)使用工具類 Restrictions 的相關方法為 Criteria 對象設置查詢對象
(3)使用 Criteria 對象的 list() 方法執行查詢,返回查詢結果QBE查詢QBE查詢就是檢索與指定樣本對象具有相同屬性值的對象。因此QBE 查詢的關鍵就是樣本對象的創建,樣本對象中的所有非空屬性均將作為查詢條件。 QBE 查詢的功能子集,固然 QBE 沒有 QBC 功能大,但是有些場合 QBE 使用起來更為方便。
工具類Example 為 Criteria 對象指定樣本對象作為查詢條件Java代碼:
1 Session session = HibernateSessionFactory.getSessionFactory().openSe ssion();
2 Transaction ts = session.beginTransaction();
3 Customer c = new Customer();
4 c.setCname("Hibernate");
5 Criteria criteria = session.createCriteria(Customer. class );
6 Criteria.add(Example.create(c));
7 Iterator it = criteria.list().iterator();
8 ts.commit();
9 HibernateSessionFactory.closeSession();
2. hibernate的get()方法的使用
session.get( id ),返回是一個object的對象,
你強制裝換一下就好了
session你應該能獲取到吧,
get方法里的參數可以是任何一個 實現了 java.io.序列化介面.
而 不管 是String Ingeter等都實現了此介面,
所以可以傳任何類型的主鍵 對象過來
不知道講的對不對,我也剛學