HQL、JPQL、SQL、CQL各自區別


 
         
1、HQL(Hibernate Query Language)是面向對象的查詢,from后面跟的是“表名”,where后用“表中字段”做條件。在Hibernate中使用查詢時,一般用HQL查詢語句。因為HQL是面向對象的,而對象類的名稱和屬性都是大小寫敏感的,所以是大小寫敏感的。
 
         
2、JPQL(Java Presistence Query Language )是EJB3.0中的JPA造出來的對象查詢語言。JPQL是完全面向對象的,具備繼承、多態和關聯等特性,
和hibernate HQL很相似。基於首次在EJB2.0中引入的EJB查詢語言(EJB QL),Java持久化查詢語言(JPQL)是一種可移植的查詢語言,旨在以面向對象表達式語言
的表達式,將SQL語法和簡單查詢語義綁定在一起.使用這種語言編寫的查詢是可移植的,可以被編譯成所有主流數據庫服務器上的SQL.
JPQL語句支持兩種方式的參數定義方式: 命名參數和位置參數。。在同一個查詢語句中只允許使用一種參數定義方式。
//面向對象的JPQL語句
select name,age,userId from User //對User實體執行查詢,查詢的是User實體的name、age、userId 屬性
3、SQL(Structured Query Language)是關系數據庫查詢語言。from后面跟的是“表名”,where后用“表中字段”做條件
//原生的SQL語句
select name,age,user_id from t_user //對t_user table表執行查詢,查詢name、age、user_id三個數據列

  

4、CQL ( Cloud Query Language)是 LeanCloud 為查詢 API 定制的一套類似 SQL 查詢語法的子集和變種,其目的是讓開發者可以使用傳統的 SQL 語法來查詢 

LeanCloud 雲端數據,從而減少學習 LeanCloud 查詢 API 的成本。與 SQL 的主要差異:不支持在 select 中使用 as 關鍵字為列增加別名。update 和 delete
不提供批量更新和刪除,只能根據 objectId(where objectId=xxx)和其他條件來更新或者刪除某個文檔。不支持 join,關聯查詢提供 includerelatedTo 等
語法來替代(關系查詢)。僅支持部分 SQL 函數(內置函數)。不支持 group byhavingmaxminsumdistinct 等分組聚合查詢語法。不支持事務。
不支持鎖。
 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM