關(guān)于HQL查詢,我們可以結(jié)合hibernate的API文檔,重點(diǎn)圍繞org.hibernate.Query接口,分析其方法,此接口的實(shí)例對(duì)象是通過(guò)通過(guò)session、對(duì)象的creatQuery(String hql)方法得到的。我這里要分析HQL的select子句,當(dāng)然要想深入HQL查詢,我們就必須了解hibernate緩存的知識(shí)。

一、選擇——Select子句查詢返回對(duì)象的討論

為什么只說(shuō)Select子句,因?yàn)槲覀兪褂玫膆ibernate框架是基于java語(yǔ)言環(huán)境下進(jìn)行開(kāi)發(fā)的,也就是說(shuō)hibernate是將數(shù)據(jù)庫(kù)進(jìn)行了對(duì)象化,那么我們使用Select語(yǔ)句查詢到的記錄,返回的是什么對(duì)象,這個(gè)很讓人感興趣。

首先我們看看在只是用from子句的情況:

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

package com.third;import java.util.Iterator;import java.util.List;import org.hibernate.Query;import org.hibernate.ScrollableResults;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.third.Dao2.Students2;public class Test3 {    private static SessionFactory sessionFactory;    private static Session session;    private static Transaction transaction;
    @Before    public void init(){        //先獲取配置對(duì)象,匹配hibernate.cfg.xml文件
        Configuration config=new Configuration().configure();        //獲取注冊(cè)服務(wù)對(duì)象(該對(duì)象中包含hibernate.cfg.xml中的<properties>和<maping>信息
        ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();        //獲取sessionFactory對(duì)象,通過(guò)sessionFactory對(duì)象讀取hibernate.cfg.xml文檔信息,并通過(guò)<mapping>標(biāo)簽加載hbm.xml文件信息
        sessionFactory=config.
        
		

網(wǎng)友評(píng)論