zoukankan      html  css  js  c++  java
  • JPQL和SQL的比较

    前言

        在JAVA EE中,JPQL是专门为Java 应用程序访问和导航实体实例设计的。Java Presistence Query Language(JPQL),java持久性查询语言。它是JPA规范的重要组成部分,其实它就是一种查询语言,语法类似于SQL语法,但是有着本质的区别,下面来一起学习下吧。

    JPQL与SQL的区别

        JPQL是面向对象的查询语言,因此它可以完全理解继承、多态和关联等特征。而且JPQL内置了大量函数,极大地方便了JPQL查询的功能。当然JPQL底层依然是基于SQL的,但JPQL到SQL的转换无须开发者关心,JPQL解析器会负责完成这种转换,并负责执行这种转换的SQL语句来更新数据库。
        SQL是面向关系数据库的查询语言,因此SQL操作的对象是数据表、数据列;而JQPL操作的对象是实体对象,对象属性。

    代码对比

    SQL:

    //原生的SQL语句
    select name,age,user_id from t_user

    JPQL:

    //面向对象的JPQL语句
    select name,age,userId from User 

    分析:
        第一条语句用于对t_user table表执行查询,查询name、age、user_id三个数据列;
        第二条语句用于对User实体执行查询,查询的是User实体的name、age、userId 属性。

    JPQL基本语法

    select 实体别名.属性名,实体别名.属性名……
    from 实体名 [as] 实体别名
    where 实体别名.实体属性 op 比较值

    代码示例

    //根据bookId查询图书信息 
    SELECT c FROM TBook c WHERE c.id=:bookId and c.isDelete=0
    //更新bookId更新图书信息
    UPDATE TBook b SET b.isDelete=1 WHERE  b.id=:bookId

    小结

    这里写图片描述

    总结

        JPQL是一种面向对象的查询语言,和hibernate HQL很相似。后续博客将会为大家介绍JPQL的查询参数和几种常见的查询方式。

  • 相关阅读:
    DBSCAN 聚类分析
    常见空间聚类算法优劣概述
    最佳实践 —— 单元测试
    C/C++ 混合编程
    映射网络路径
    时间服务器/时间同步配置
    取出根路径
    PS Studio调用.exe输出错误信息的解决办法
    远程重启IIS服务
    浏览打开窗口,打开运行窗口,文件夹
  • 原文地址:https://www.cnblogs.com/xiang--liu/p/9710152.html
Copyright © 2011-2022 走看看