JPQL全稱(chēng)Java Persistence Query Language。
基于首次在EJB2.0中引入的EJB查詢(xún)語(yǔ)言(EJB QL),Java持久化查詢(xún)語(yǔ)言(JPQL)是一種可移植的查詢(xún)語(yǔ)言,旨在以面向?qū)ο蟊磉_(dá)式語(yǔ)言的表達(dá)式,將SQL語(yǔ)法和簡(jiǎn)單查詢(xún)語(yǔ)義綁定在一起·使用這種語(yǔ)言編寫(xiě)的查詢(xún)是可移植的,可以被編譯成所有主流數(shù)據(jù)庫(kù)服務(wù)器上的SQL。
其特征與原生SQL語(yǔ)句類(lèi)似,并且完全面向?qū)ο螅ㄟ^(guò)類(lèi)名和屬性訪(fǎng)問(wèn),而不是表名和表的屬性。
使用JPQL,需要把SQL語(yǔ)句修改成類(lèi)似HQL 語(yǔ)句。SQL 查詢(xún)的是數(shù)據(jù)庫(kù),而JPQL 查詢(xún)的是對(duì)象和屬性,在語(yǔ)法上是有些不同的。對(duì)于有些用JPQL 無(wú)法寫(xiě)出來(lái)的查詢(xún),還是使用原生SQL寫(xiě)出來(lái)方便
以下給出一個(gè)例子,注意語(yǔ)法的區(qū)別:
JPQL查詢(xún)
@PersistenceContext
protected EntityManager em;
public ListVideo> findVideoList1() {
String hql = "from Video order by id desc";
Query query = em.createQuery(hql);
ListVideo> result = query.getResultList();
em.clear();
return result;
}
SQL查詢(xún)
查詢(xún)最近7天的數(shù)據(jù)
public ListVideo> findVideoList2() {
ListVideo> result = (ListVideo>) em.createNativeQuery
("select * from db_video where date_sub(curdate(), interval 6 day) = date(date) order by date desc", Video.class)
.getResultList();
return result;
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- JPA之使用JPQL語(yǔ)句進(jìn)行增刪改查
- mysql5.7.19 解壓版安裝教程詳解(附送純凈破解中文版SQLYog)
- 純Python開(kāi)發(fā)的nosql數(shù)據(jù)庫(kù)CodernityDB介紹和使用實(shí)例
- 3步搞定純真IP數(shù)據(jù)導(dǎo)入到MySQL的方法詳解
- 用純CSS+DIV寫(xiě)的漂亮Flash幻燈片及SQL標(biāo)簽教程!
- SQL刪除語(yǔ)句DROP、TRUNCATE、 DELETE 的區(qū)別
- mybatis-plus配置控制臺(tái)打印完整帶參數(shù)SQL語(yǔ)句的實(shí)現(xiàn)
- 在IDEA中安裝MyBatis Log Plugin插件,執(zhí)行mybatis的sql語(yǔ)句(推薦)