什么是JPA

JPA

SQL ;Structed Query Language
JPQL:JPA的Query Language(直接面向对象)
完全以面对对象的方式,访问操作数据库数据
它是JPA接口规范中定义的查询语句规范,不能直接操作,需要通过antlr.jar包底层利用反射解析注解Table的name属性获取表名,没有就是类名,然后拼接sql语句才能被执行,性能比sql略低,但是JPA有缓存(sql,数据缓存)完全以面对对象的方式去操作数据库,综合效率跟sql差不多
查询的from后面写实体类名称,查询的列和判断条件中写实体类的字段名称而不是表中列名称,最后再次利用反射将查询到的结果集封装成该实体类的对象进行返回。

注意:不能写* ,*是sql语句的,sql关键字和JPA一样,不区分大小写;不能出现表名,列名,只能出现java实体类的字段和属性,区分大小写 ;内部是用PreparedStatement动态sql语句对象执行的。

复习Sql的联表查询
内连接(
显示:A表 inner join B表
隐式:A表,B表)
外连接(左 右)
左连接 : left (outer) join
右连接:right (outer) join

JPQL:from 类名 别名 join 别名.类字段
from后面进必须写实体类名称,其他的全部使用对象,属性的方式去连接,不需要加连表条件(自己的字段配置好了的),JPA自动帮我们加上。

方言类:Dialect类 数据库子类,只有JPA【hibernate】能实现跨数据库

  • 原理:实现不同数据库厂商的数据库语言拼接,从而实现,程序员准备一条语句,方言类会根据配置的方言类实现数据库语句拼接。根据不同的数据库创建不同的语句执行,从而实现跨数据库。
  • 例如分页:
    里面根据不同数据库重写了GetLimitString方法,实现不同的拼接方式,最终实现数据库分页查询
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值