【软件工程】实体类的持久性
实体类
实体类表示应用程序中的持久数据库对象。它不是数据库中的持久类。
称它们持久的原因是在应用程序终止之前,实体对象的最新映射会持久保存在数据库中。
如此,同一个应用程序或者其他应用程序的后续活动就可以再次获取这些实体对象,且只需要从数据库中重新装载实体对象到程序内存中即可。
应用程序与持久数据库模型的关联
下图表示了PCBMER体系结构框架中的向下依赖原则(DDP)扩展了应用程序与持久数据库之间的通信。
资源子系统专门负责与数据库通信。所有来自应用程序的SQL查询和对存储过程的调用由资源类产生并传递给数据库服务器,数据库服务器返回所有的数据和结果在传递到实体子系统之前首先要传递到资源类。
实体子系统表示应用程序内存中的业务对象,必须仔细定义业务对象与对应数据库表记录之间的映射规则。
映射规则由中介者子系统使用,中介者负责管理应用程序的内存以及对象在内存与数据库之间的人和移动。也就是说,当控制类需要访问一个业务对象而事先没有该对象的句柄(引用)时,中介者子系统就是调用的第一个端口。这也意味着中介者子系统必须管理执行数据库访问和修改的业务事务。
O-R映射的困难性
应用程序与数据库之间的映射是复杂的,主要有两方面的原因。
原因一是数据库的存储结构处理不了面向对象泛型,实际上是非面向对象结构(通常是关系表)到实体子系统类的转换。即使目标数据库就是一个对象数据库,数据库的特性也使得这个转换需要经过仔细的考虑。
原因二是数据库几乎都不是为单个应用程序设计的,需要能满足所有应用程序的最优数据库设计而不仅仅是只针对所考虑的应用程序。所有与该数据库相关的应用程序具有与它们一致的数据库结构。数据库设计人员应该考虑到未来,预测将来的应用程序对数据库的需求,并设计出满足这些需求的数据库。
【软件工程】实体类的持久性相关推荐
- 【java面试题】Java面试宝典2013版(超长版),抽象类是否可继承实体类
一. Java基础部分......................................................................................... ...
- 项目实体类报错_第一次开发项目感想
1.大一感想 第一次真正的开发网站,就前两周开始,我大二期间学习了Java,在那时,我就开始考虑以后到底要从事哪方面的职业,我的专业是物联网,说实话,我真的对这方面没兴趣,我为什么对专业没兴趣,我也曾 ...
- MyBatis由浅入深学习总结之二:MyBatis解决Java实体类和数据库表字段不一致方法总结
在此,首先说明一点任何持久性框架都需要解决一个问题,那就是Java实体类的字段一般来说基本上会与数据库表中字段不一致,那么它们是如何解决的呢?咱们以Hibernate和SpringJDBC为例说明一下 ...
- 实体类定义规则以及主要实体类详解
1.实体类概述 1.1什么是实体类 众所周知实体类是在java开发中被应运到的,但是什么是实体类? 1.11实体类的定义 百度百科查阅说:实体类主要是作为数据管理和业务逻辑处理层面上存在的类别: ...
- 001 spring5框架:java类工程,IOC:实体类表示表关系,AOP,JdbcTemplate模板,事务操作,Spring5 框架新功能:日志,为空注解,函数式风格,juint,Webflux
1. Spring5 框架(Spring5 Framework)介绍 1.1 概念 1.Spring 是轻量级的开源的 JavaEE 框架 2.Spring 可以解决企业应用开发的复杂性 3.Spri ...
- C#实现json、xml与实体类互相转换
首先是json与实体类之间的的转换,现有如下json数据: {"Content": "中午12点开会","ResultCode": &quo ...
- MybatisPlus忽略实体类中的非数据库字段、JPA忽略实体类中的非数据库字段、HeHibernate忽略实体类中的非数据库字段
mybatis plus忽略映射字段时可以在实体类属性上使用以下注解: @TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的. @TableField(e ...
- IDEA中根据数据库自动生成实体类,并自定义所生成的实体类中的注解 @Table @Id @...
使用IDEA项目添加Hibernate扩展,生成实体类并配置实体类中的注解 一.使用Hibernate自动生成实体类 1.在项目上右键,选择Add Framework Support找到 Hibern ...
- javabean实体类与实体类之间的快速转换
一.Dozer是什么? dozer是一个能把实体和实体之间进行转换的工具.只要建立好映射关系.就像是ORM的数据库和实体映射一样. 使用方法示例如下: // article(PO) -> art ...
最新文章
- CNCF 云原生系列文章
- java操练之求两数最大公约数的两种算法思路
- Sql Server 2008R2版本中有关外键Foreign的使用
- promise的大白话讲解
- ASP.NET 2.0服务器控件与组件开发中文版即将出版
- swagger-ui.html 404,解决访问swagger2报404问题
- c++多边形扫描线填充算法_基于MATLAB的道格拉斯普克算法递归实现
- GPS(北斗)拓展无线同步模块GSYN1000系列在电力、大坝、隧道、核电、密闭厂房的应用方案...
- 学习vim: 常用命令
- 利用Java-JACOB操作WORD文档2
- php streamsocketenablecrypto,PHPMailer发送邮件报错Msg:stream_socket_enable_crypto():
- java文件转码工具-native2ascii.exe命令简介
- Android QFIL 烧录
- VSCode安装教程(超详细)
- excel图表交互联动_office2016下PPT图表进行交互联动的技巧
- 【LaTeX】下载及安装步骤
- 论坛源码推荐(12月24日):OS X原生开源游戏模拟器OpenEmu iOS 7条形码扫描器
- 基于双流融合网络的遥感图像融合 论文笔记
- 【Swift】401状态处理流程
- matlab示波器模拟,[转载]利用MATLAB命令窗口绘制Simulink仿真示波器波形的方法