JPA概述、Spring Boot + JPA的应用

JPA概述

JDBC

是一个类一个接口,定义了访问数据库的通用接口,可以用java规范的访问数据库,

持久层框架

数据的存储,也就是三层框架中的Dao层,

Hibernate:开源的轻量级的ORM

  • ORM(Object Relation Mapping):对象(内存中的java对象)关系(表的数据)映射(Mapping映射)
    • 由面向对象的开发方法而产生的,对象和关系数据库
    • 对象和关系数据是业务实体的两种表现形式
    • ORM实现内存中对象到关系数据库数据的映射,以对象管理表
  • 将对象映射到数据库中存储的表,操作对象就是操作数据库中的表

Mybatis:半ORM

  • sql语句需要手工编写
  • 支持定制化sql,存储过程以及高级映射
  • 两种方式进行持久化的处理:xml或注解来配置映射原生信息

总结:

  • Hibernate自动化,Mybatis手工编写sql
  • 对于复杂的程序推荐Mybatis,因为Mybatis灵活,可以特定的数据库的sql语句,但是Mybatis移植性不好,因为编写的sql语句只适应一个数据库,
  • 相比之下Hibernate较好,在不修改代码的情况下就可以使用不同的数据库

如果项目需要适配不同的数据库,使用Hibernate

如果是互联网应用,用大量的sql语句,需要随时优化建议使用Mybatis

JPA是什么

sun公司定义的一个规范

JPA(Java Persistence API):java持久API(用来对象持久化的)也就是操作数据库的

用来在java对象和关系数据库之间保存数据,充当面向对象的领域模型和关系数据库系统之间的桥梁

JPA定义了一些通用的接口,通过接口可以可以访问不同的数据库。

JPA使用有两种方式,一种是JDK注解,一种是XML文件描述对象关系表的映射关系,并将运行期的实体对象持久化到数据库中

Sun引入JPA ORM规范原因

  • 简化Java EE 和Java SE 应用开发工作
  • Sun希望整合ORM技术,实现天下归一

总结:

JPA等同于JDBC的规范,通过JPA可以集成对数据库的统一访问

JPA的实现

规范就是一个文档就是一个说明,规范不能直接的使用,我们要使用JPA规范的实现

  • Hibernate
    • JPA的始作俑者就是Hibernate的作者
    • Hibernate 从3.2开始兼容JPA
  • OpenJPA
    • OpenJPA是Apache 组织提供的开源项目
  • EclipseLink
    • EclipseLink的前身是Toplink,Oracle的企业级ORM.

JPA的优势

  • 标准化
    • 可以使用JPA访问不同的数据库,不同的ORM框架,只要少量的修改代码或者是不修改代码
  • 简单易用,继承了不同的框架:
    • JPA提供简单的统一编程模型,可以在Spring,SpringBoot框架中使用
  • 可媲美JDBC的查询能力:
    • JPA是面向对象的以对象的方式来访问表中的数据
    • 定义了独特的JPQL语言
  • 支持面向对象的高级特性
    • 类之间的继承,多态,类和类之间的复杂关系

总结:标准化是最大的优势

JPA的三方面技术

ORM映射元数据:

  • 支持XML和注解两种元数据形式,元数据描述对象和表之间的映射关系,框架将对象持久化到数据库表中

JPA和API

  • 对java对象执行CRUD行为,框架会把你的方法转换成数据库能识别的sql语句

查询语言(JPQL)

  • 数据能存进去还得能查出来,通过JPQL可以获取持久层中的数据,因为使用的是JPQL是面向对象的,不是面向数据库的,即使你更换了数据库软件,也不用修改程序
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Spring BootJPA的结合可以通过添加相应的依赖来实现。在pom.xml文件中,可以添加以下依赖来引入JPA的核心依赖:\[1\] ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> ``` Spring Data JPA是对JPA规范的再次封装抽象,底层使用了Hibernate的JPA技术实现。它是Spring Data家族的一部分,旨在简化基于JPA的存储库的实现。通过使用Spring Data JPA,可以更轻松地构建使用JPA的数据访问层。\[2\]\[3\] #### 引用[.reference_title] - *1* [Spring Boot+JPA](https://blog.csdn.net/qq_52681418/article/details/112716685)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [SpringBoot 一文搞懂Spring JPA](https://blog.csdn.net/matafeiyanll/article/details/124603090)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [SpringBoot环境下JPA使用](https://blog.csdn.net/m0_49261516/article/details/127212417)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值