1. 程式人生 > >Hibernate中的createSQL和createSQLQuery的區別?

Hibernate中的createSQL和createSQLQuery的區別?

 Hibernate中的createQuery與createSQLQuery區別是:

前者是hql語句進行查詢,後者可以用sql語句查詢。前者以hibernate生成的bean為物件裝入list返回,後者則是以物件陣列進行儲存。

下面的案例輔助我們進行理解:

PO:User.class

Propertities:userid,username

DDL:session.createQuery(“form User u”).list()時生成的SQL:select userid,username from user;

當執行了session.createQuery("from User u").iterator()時生成的SQL:

select userid from tuser;

可見:看出list()一次將資料從資料庫中讀出直接填充到List中。

iterator()將資料的主鍵從資料庫中讀出,當迴圈這個Iterator時才新增執行:

select userid,username from user where userid=?;把資料讀出。