hibernate hql語句
你的HQL語句寫的有問題:
1、在select PetInfo from PetInfo as p order by (*ength+*e+*e)語句中,PetInfo不知道是什么,如果想查這個表的所有字段,那么前面的"select PetInfo "都可以不要;如果PetInfo是表中的某個字段名的話,可以用select new map(*o as PetInfo)
2、在order by (*ength+*e+*e)語句中,(*ength+*e+*e)不應該這樣寫,直接寫成:
order by *ength,*e,*e
所以整個HQL可以寫成:
from PetInfo as p order by *ength,*e,*e
或
select new map(*o as PetInfo) from PetInfo as p order by *ength,*e,*e
============================================
根據你后來的補充,你的HQL語句可以寫成如下方式:
select p.*,(*ength+*e+*e) as ord from PetInfo as p order by ord
hibernate HQL添加語句
那么多人說了半天都沒有解決樓主所提問題,實際上這個問題我已經說個多次了,現在讓我再一次來回復樓主的問題吧:
使用HQL語句來完成插入操作是不能實現的,不管你使用insert into。.values。還是insert into。..select。..都不行
原因:因為Hibernate的HQL語言是用于面向對象實現查詢功能的,然而在插入操作中是不會牽涉任何查詢動作的,所以HQL不能用于insert語句的插入操作,而select、update、delete語句都可以有可能的查詢實現,比如:
select語句時標準的查詢,這個就不用再說了
update語句:update 對象名 set。..where。
delete語句:delete from 對象名 where 。..
看到了沒有,update與delete牽涉到where的查詢篩選過程,這個過程是需要采用HQL來實現的,然而insert永遠牽涉不到查詢篩選過程,所以Hibernate沒有對插入做insert實現
大家注意回答問題的時候要針鋒相對,不要大非所問,比如樓主問能否采用HQL實現插入動作,你們就不要再要求樓主直接調save方法,也不要再說用本地SQL實現之類的,很明顯這些樓主都是知道的,不用你來提醒別人應該怎么做,不應該怎么做。
搞不懂為什么有那么多人說HQL可以,說著這句話的人請你們動動腦子,如果不想動腦子自己動手試一下也可以看出問題嘛,不要張開嘴就亂說一通,誤人子弟。
hibernate添加語句怎么寫
不是有映射文件嗎?
比如你的數據庫表為student
那么的你就應該有*配置文件和他的映射文件*,最后還應該有一個student表的映射類*
這3個文件.
然后你建一個實現類studentInsert
實現是
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session session = *ssion();
Transaction tx = *ransaction();
student st=new student();
*("0001");
*rName("Wang");
*sWord("123");
*(st);
*();
*();
就是這樣.
hibernate 查詢語句
因為hibernate是封裝了JDBC的框架。
文中第一句:String queryString ="from *****";我想樓主應該知道這是HQL語句,TbArea 是你在hibertate 配置文件中定義的名稱.propertyName + "= ?";是屬性名
這句話可以看做正常的sql語句是
select * from TbArea as a where a.屬性名 = 你在程序中傳過來的參數;
第二句:
Query queryObject = getSession().createQuery(queryString);
是hibernate里面封裝好的方法,取得你session對象,并創建Query對象。。該對象在Hibernate中你可以了解為jdbc的statement對象.
queryString就是你執行的sql語句.
第三句:
*ameter(0, value);
queryObject我想樓主不是很熟練JDBC吧。這個對象基本和statement相似.這種寫法是最常用的,優點我不太記得。
setParameter也就是設置你第一句HQL語句中的問號。設置參數.value為你方法中傳進來的參數
return *();返回查詢到的多行數據,做為列表形式返回。
Hibernate中的HQL語句?求高手進
首先要說的是,hibernate操縱的都是對象。
所有第一條,你必須有一個javaBean,如是Cat, 有a和b屬性,有對應的get和set方法,通過new Cat('xyz',123);創建一個Cat對象cat,然后調用hibernate的*(cat);就ok了。第二條:首先要根據id把對象加載上來,然后更新,如:Cat cat = *(*,1),*('x');此時Cat類中必須有id和a屬性,有相應的get,set方法。
第三:先把對象加載上來,然后刪除:Cat cat = *(*,'3'); *(cat); 第四:就是根據Test對象的某個屬性查詢,返回的是Test對象的集合。 第五,沒發現dao和table有啥聯系。
hibernate基本語句怎么操作
你既然用了hibernate就用第一種寫法,
用第二種寫法和不用hibernate有啥區別,不用hibernate就是要先開Connection然后開事物,保存,提交事物,然后關閉連接
你既然用了hibernate就完全不用用第二種方法,因為這些操作在getHibernateTemplate().save();里都已經封裝好了,如果你非要用下面的寫法也沒辦法,不是不行,只是跟只用jdbc有什么區別
hibernate3沒有用過,但是如果沒有find的話hibernate也是很好用的,拋開criteria不說
hql:
集合:*sion().createQuery("hql語句").list();
單一結果:*sion().createQuery("hql語句")uniqueResult();
有參數*sion().createQuery("hql語句").setString(0,"xxx").setString(1,"xxx").list();
sql:
*sion().createSqlQuery("sql語句")
其他一樣
轉載請注明出處華閱文章網 » hibernate語句