Hibernate HQL語句總結

認識HQL


一個ORM框架是建立在面向對象的基礎上的。最好的例子是Hibernate如何提供類SQL查詢。雖然HQL的語法類似於SQL,但實際上它的查詢目標是對象。HQL擁有面嚮對象語言的所有的特性,這其中包括多態、繼承和組合。這就相當於一個面向對象的SQL。


HQL(Hibernate Query Language)它對查詢條件進行了面向對象封裝,符合編程人員的思維方式。同時也提供了類似標準SQL語句的查詢方式。

使用HQL

Hibernate是一個開放源代碼的對象關係映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數據庫表建立映射關係,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。


簡單使用:

from User user where user age=20;
from User user where user age between 20 and 30;
from User user where user age in(20,30);
from User user where user name is null;
from User user where user name like ‘%zx%’;
from User user where (user age%2)=1;
from User user where user age=20 and user name like ‘%zx%’;
select user name,user age from User user 
update User user set user age=20 where user age=18
delete from User user where user age=18

結合spring boot:

使用的時候,主要在Reporsitory的接口中設計查詢函數

@Query("select o from User o where o.userID= :userId and o.age between :start and :end" )
Page<User> Search(@Param("userID")String userId,@Param("start")Date start, @Param("end")Date end,Pageable p);

注意使用in查詢的時候要加個括號,否則在執行的時候可能會出異常。

@Query("select o from User o where o.userID in (:userIds) and o.age between :start and :end" )
Page<User> Search(@Param("userIds")Iterable<String> userIds,@Param("start")Date start, @Param("end")Date end,Pageable p);
發佈了34 篇原創文章 · 獲贊 30 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章