关于ORM,JPA简单概念了解和对象三大状态

本文介绍了ORM的概念及其作用,强调它解决了对象与关系数据库之间的映射问题,同时讨论了其可能导致的性能下降。接着解释了JPA(Java Persistence API)作为ORM规范的角色,并列举了几个JPA的实现框架。还探讨了DTO(Data Transfer Object)在数据传输中的作用,以及如何通过DTO优化数据交互。最后,详细阐述了对象的三大状态:瞬时态、持久态和游离态。

ORM(Object Relational Mapping)

概念

ORM(Object Relational Mapping):对象关系映射,是一种设计思想,是为了解决面向对象与关系数据库存在的互不匹配的现象。ORM通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中

作用

主要解决对象关系的映射

  • 会自动将一个持久化类对应一个数据库表
  • 每一个实体类实例对应表中的一条记录(一行)
  • 类中的每个属性对应表中的每个字段

缺点

虽然提高了开发效率,但是由于将对象所有属性持久化,就大大消耗了内存。并且,因为SQL是ORM自己生成的,一般不会写出很高效的算法,这样就降低了性能



了解JPA(Java Persistence API)

JPA是什么

​ JPA(Java Persistence API):java持久化API,是ORM框架的一种规范,标准,接口。用于管理javaEE和javaSE环境中的持久化,以及对象/关系映射的javaAPI。

​ JPA是一套实现ORM理论的接口,没有实现代码。

JPA框架(实现者)

​ Hibernate (JBoos)、EclipseTop(Eclipse社区)、OpenJPA (Apache基金会)。

JPA作用

​ 通过JPA框架,实现使用对象操作数据库,不用写SQL语句。



DTO(Data Transfer Object)

概念

DTO(Data Transfer Object):数据传输对象,是将数据封装成简单的javaBean对象,是一种MVC架构中的Model,但DTO不同于普通的JavaBean对象,普通的JavaBean是包含所有信息,而DTO是只存在业务所需要的信息


DTO与数据库关系

一个DTO --》 一个虚拟表

​ DTO运用在ORM中时,一般是与数据库的虚拟表一样,是一种临时的JavaBean。

​ DTO类中存放的业务字段,都是需要进行实际展示或使用的字段。因为原本对应表的实体类中,存放了大量信息,而有些信息我们不需要使用操作时,我们就可以将需要的字段封装成一个DTO作为虚拟表对应的javaBean。

  • 这样我们就减少了请求次数,大大提高了数据交互的效率

  • 避免传输整个表的字段,一定程度上提高了安全性



对象的三大状态

对象存在的三大状态有:瞬时态持久态游离态(托管态)


瞬时态(transient)

​ 瞬时态:是从未与任何持久化上下文关联过的状态,当刚new出来一个新对象,还没有保存在数据库或session缓存中不存在该对象时,就是瞬时态。



持久态(persistent)

​ 持久态:对象实例与持久化上下文有关联,在数据库中有对应的表记录,或者在session缓存中存在该对象实例时,就是持久态。



游离态(detached)

​ 游离态(托管态):对象曾存在于session缓存中,但当session关闭后,对象的状态就变成了游离态。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值