JPQL全称Java Persistence Query Language。
基于首次在EJB2.0中引入的EJB查询语言(EJB QL),Java持久化查询语言(JPQL)是一种可移植的查询语言,旨在以面向对象表达式语言的表达式,将SQL语法和简单查询语义绑定在一起·使用这种语言编写的查询是可移植的,可以被编译成所有主流数据库服务器上的SQL。
其特征与原生SQL语句类似,并且完全面向对象,通过类名和属性访问,而不是表名和表的属性。
使用JPQL,需要把SQL语句修改成类似HQL 语句。SQL 查询的是数据库,而JPQL 查询的是对象和属性,在语法上是有些不同的。对于有些用JPQL 无法写出来的查询,还是使用原生SQL写出来方便
以下给出一个例子,注意语法的区别:
JPQL查询
@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查询
查询最近7天的数据
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;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:- JPA之使用JPQL语句进行增删改查
- mysql5.7.19 解压版安装教程详解(附送纯净破解中文版SQLYog)
- 纯Python开发的nosql数据库CodernityDB介绍和使用实例
- 3步搞定纯真IP数据导入到MySQL的方法详解
- 用纯CSS+DIV写的漂亮Flash幻灯片及SQL标签教程!
- SQL删除语句DROP、TRUNCATE、 DELETE 的区别
- mybatis-plus配置控制台打印完整带参数SQL语句的实现
- 在IDEA中安装MyBatis Log Plugin插件,执行mybatis的sql语句(推荐)