首页 > 其他分享 >JDBC和JPA关系

JDBC和JPA关系

时间:2022-11-07 10:44:38浏览次数:70  
标签:关系 JDBC Java 框架 JPA 数据库 ORM

1. JDBC和JPA的区别

  • 不同标准:jdbc是数据库的统一接口标准;jpa是orm框架的统一接口标准。
  • 用法区别:jdbc更注重数据库,orm则更注重于java代码,但是实际上jpa实现的框架底层还是用jdbc去和数据库打交道。

2. JDBC(Java DataBase Connectivity)

是java连接数据库操作的原生接口。JDBC对Java程序员而言是API,为数据库访问提供标准的接口。由各个数据库厂商及第三方中间件厂商依照JDBC规范为数据库的连接提供的标准方法。

  • 优点:运行速度最快,所有操作数据库的技术底层都是jdbc写的
  • 缺点:重复代码多,耦合性高,开发效率低,更换数据库比较繁琐

3. ORM(Object-Relational Mapping)

对象关系映射。简单的说:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作数据库表的目的。
优点:减少重复性代码。

常见的orm框架有:
Hibernate、spring data jpa、open jpa

Hibernate
Hibernate是一个开源的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以使用面向对象的思维来操纵数据库。是一种JPA实现。

4. JPA(Java Persistence API)

Java对象持久化的 API。是SUN公司推出的一套基于ORM的规范,通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。JPA规范本质上就是一种ORM规范,注意不是ORM框架——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口,但具体实现则由服务厂商来提供实现。JPA是为了让面向对象设置的,为了不写sql语句而设置的。
优点:数据库移植快,一级二级缓存,查询,提高性能(ehcache框架实现缓存)
缺点:查询所有的时候,find性能无法控制,无法干预sql语句的生成,对sql语句要求高的话

5. 多个数据访问框架区别

Hibernate:是JPA的一种实现,是一个框架
Spring Data JPA:对JPA规范的再次抽象,底层使用Hibernate实现
Spring Data JDBC: jdbcTemplate模板数据库简化对数据库的操作,相比传统JDBC而言省去了,数据库驱动,连接等无关配置,只需要写sql,设置参数
Mybatis:是一个持久化框架,但不完全是一个orm框架,不是依照的jpa规范,她需要些sql语句,半ORM。

下图说明上面介绍的名词之间相互关系

 from : https://blog.csdn.net/java_jack1/article/details/122734343

标签:关系,JDBC,Java,框架,JPA,数据库,ORM
From: https://www.cnblogs.com/anenyang/p/16865169.html

相关文章

  • const 与 成员函数 的三种关系
    1.前后都加const:返回const、表示在外部不能去修改这个引用(否则编译错)、也就是保护了成员变量括号后面的const、表示这个函数本身不修改成员变量一般把getXXX函数写......
  • 第六章-关系数据理论
    本章的目的:如何构造一个好的数据库模式6.1问题的提出:关系模式的表示:关系模式由五部分组成,是一个五元组:R(U,D,DOM,F)R表示关系模式名U表示一组属性D表示U的取值范......
  • 拓端数据tecdat|R语言多项式回归拟合非线性关系
     多项式回归是独立x变量和因果y变量之间的非线性关系。当我们分析有一些弯曲的波动数据时,拟合这种类型的回归是很关键的。 在这篇文章中,我们将学习如何在R中拟合和绘制多......
  • SpringBootJPA多表多条件查询(参数可能为空)语句
    @Query(value="SELECTc.bynameasbyname,c.cartascart,c.phoneasphone,c.surnameassurname,c.idasid,c.update_timeasupdateTime,c.head_imgasheadImg,c.i......
  • 1.6 关系运算符
    1.6关系运算符/*例1.6-1:关系运算符*/publicclassOperator03{publicstaticvoidmain(String[]args){inta=10;intb=20;......
  • redis rdb与snapshot的关系
    关系RDB是Redis用来进行持久化的一种方式,在指定的时间间隔内将当前内存中的数据集快照写入磁盘,也就是Snapshot快照(数据库中所有键值对数据)。恢复时是将快照文件直接读到......
  • MyBatis-架构概述,什么是框架,三层架构,JDBC
    MyBatis框架-第1章框架概述1.软件开发常用结构1.1三层架构三层架构包含的三层:界面层(UserInterfacelayer)、业务逻辑层(BusinessLogicLayer)、数据访问层(Dataacc......
  • 【JAVA高级】——初识JDBC中Service业务逻辑层
    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。本文目录​​......
  • 【JAVA高级】——初识JDBC中DAO数据访问对象
    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。本文目录​​......
  • 33、Java——汽车租赁系统(对象+JDBC)
    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。本文目录​​覆盖知识​​​​项目需求​​​​设计步骤 ​​​​开发思路 ​​​​类的属性和方法​​​​代码......