1. 程式人生 > >hibernate的Query、Criteria、SQLQuery物件使用

hibernate的Query、Criteria、SQLQuery物件使用

一、Query物件

1. 使用query物件,不需要寫sql語句,但是寫hql語句

(1)hql:hibernate query language,hibernate提供查詢語言,這個hql語句和普通sql語句很相似。

(2)hql和sql語句區別:

- 使用sql操作表和表字段

- 使用hql操作實體類和屬性

2. 查詢所有的hql語句:from 實體類名稱

3. Query物件使用

(1)建立Query物件

(2)呼叫query物件裡面的方法得到結果

//建立query物件 方法裡引數寫hql語句
Query query = session.createQuery("from User");
//呼叫query物件裡面的方法得到結果
List<User> list = query.list();
for (User user : list) {
     System.out.println(user);
}

二、Criteria物件

1. 使用這個物件查詢操作,但是使用這個物件時候,不需要寫語句,直接呼叫方法實現

2. 實現過程

(1)建立criteria物件

(2)呼叫物件裡面的方法得到結果

//建立Criteria物件 方法裡放實體類的class
Criteria criteria = session.createCriteria(User.class);
//呼叫方法得到結果
List<User> list = criteria.list();
for (User user : list) {
  System.out.println(user);
}
二、SQLQuery物件

1. 使用hibernate時候,呼叫底層sql實現

2. 實現過程

(1)建立物件

(2)呼叫物件的方法得到結果

返回list集合每部分是陣列

	//建立SQLQuery物件 方法裡引數寫普通sql語句
	SQLQuery sqlQuery = session.createSQLQuery("select * from users");
        //呼叫方法得到結果    預設裡面每部分是陣列結構
        List<Object []> list = sqlQuery.list();
        for (Object[] objects : list) {
	    System.out.println(Arrays.toString(objects));
	    //Arrays.toString()把陣列作為字串輸出
	}

返回list中每部分是物件形式

//返回的list中每部分是物件形式
sqlQuery.addEntity(User.class);
//呼叫sqlQuery裡面的方法
List<User> list = sqlQuery.list();
for (User user : list) {
   System.out.println(user);
}