UML-持久框架-目标&关键思想
1、目标
1)、使用模板方法、状态模式、命令模式来设计部分框架
2)、介绍对象-关系(O-R)映射中的一些问题
3)、使用虚代理实现的滞后具体化
2、关键思想
1)、映射(Mapping)
类--表
类中属性---表中字段
使用模式映射(schema mapping)将对象和表建立关联
2)、对象标识(object identity)
为了方便将记录与对象联系起来,确保没有重复,记录和对象必须有唯一的对象标识。
3)、数据库映射器(database mapper)
负责具体化和虚化的纯虚构数据库映射器。
4)、具体化和虚化(materialization and dematerialization)
具体化:表记录--->对象
虚化(钝化):对象--->表记录
5)、缓存(cache)
持久性服务微提高性能缓存具体化后的对象
6)、对象的事务状态(transaction state of object)
就对象与当前事务而言,了解对象状态是有用的。例如,了解哪些对象已经被修改以便决定是否需要将他们存入数据库中。
7)、事务操作(transaction operation)
提交和回滚操作
8)、滞后具体化(lazy meterialization)
并非一开始就具体化所有对象,只有当需要时才具体化特定实例。
9)、虚代理(virtual proxy)
滞后具体化可通过使用称为虚代理的智能引用(smart reference)来实现。
UML-持久框架-目标&关键思想的更多相关文章
- Mybatis成为Java互联网时代首选持久框架的原因
持久层可以将业务数据存储到磁盘,具备长期存储能力,只要磁盘不损坏(大部分的重要数据都会有相关的备份机制),在断电或者其他情况下,重新开启系统仍然可以读取这些数据.一般执行持久任务的都是数据库系统.持久 ...
- 大数据学习day18----第三阶段spark01--------0.前言(分布式运算框架的核心思想,MR与Spark的比较,spark可以怎么运行,spark提交到spark集群的方式)1. spark(standalone模式)的安装 2. Spark各个角色的功能 3.SparkShell的使用,spark编程入门(wordcount案例)
0.前言 0.1 分布式运算框架的核心思想(此处以MR运行在yarn上为例) 提交job时,resourcemanager(图中写成了master)会根据数据的量以及工作的复杂度,解析工作量,从而 ...
- pure MVC框架目标与好处
框架一瞥 PureMVC是一个为创建基于经典MVC元设计模式应用的轻量级框架. 此框架是开源且免费的,已经被AS2,AS3,Java,C#以及其他流行语言所实现.这也允许在多样的平台上开发,包括: l ...
- Java相关框架概念以及思想
1.什么是IoC Ioc—Inversion of Control,即“控制反转”,是一种思想, 一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合.更优良的程序. 高内聚低耦合的设计能够让构 ...
- spring框架中AOP思想与各种配置详解
Spring中提供两种AOP支持: 1.基于代理的经典AOP 2.Aspectj注解配置AOP 首先我们先了解什么是AOP,AOP(Aspect Oriented Programming ...
- java 持久框架mybatis的初步学习
什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索.MyBati ...
- (二十二)自定义简化版JDBC(Dbutils框架的设计思想)
目录 元数据概念 DataBaseMetaData ParameterMetaData ResultSetMetaData 编写简化版的JDBC O-R Mapping 概念 自定义简化版JDBC 元 ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring框架的基本思想
EJB的学习成本很高,开发效率却不高,需要编写很多重复的代码,这些问题阻止了EJB的继续发展.就在EJB技术止步不前的时候,Spring框架在合适的时机出现了,Spring框架和EJB不同,Sprin ...
- Appium 自动化测试框架:关键字驱动+数据驱动
1. 关键字驱动框架简介 2. 框架结构说明 3. 框架代码实现 action 包 page_action.py business_process 包 case_process.py data_so ...
随机推荐
- LINQ---查询语法和方法语法
namespace ConsoleApplication45 { class Program { static void Main(string[] args) { , , , , , , }; va ...
- spring mvc 的@PathVariable对应中文乱码解决办法
参考:https://www.aliyun.com/jiaocheng/800577.html
- 小程序列表循环出来的list是不同接口赋的值
需求:首页有三个列表,样式形式都是一样的,可以循环展示,但是循环的内容list部分是来自于不同的三个接口. data: { indexList:[{ name: "中考体能突击营" ...
- metasploit扫描
实验目的: 一. 基于TCP协议收集主机信息 二. 基于SNMP协议收集主机信息 三. 基于SMB协议收集信息 四. 基于SSH协议收集信息 五. 基于FTP协议收集信息 实验环境: ...
- 【capstone/ropgadget】环境配置
具体环境配置可参考 https://github.com/JonathanSalwan/ROPgadget/tree/master 作者给出的安装方式 但具体配置中出现了问题,如引用时出现如下错误: ...
- id 和 class的区别
id 选择器 ID 只能被指定单个元素使用,无法多个元素使用.像你的身份证号,是唯一的,id 选择器以 “#” 来定义.id选择器的优先级高于class选择器的优先级的 # userid { text ...
- mysq8设置编码utf8
设置mysql默认编码utf8 以及其他配置 系统:centos7 vi /etc/my.cnf #红色部分如果以存在则在他的下方添加 [mysql] default-character-set=ut ...
- R语言 scale()函数
1.scale() 函数 #Usage scale(x, center = TRUE, scale = TRUE) #center中心化,scale标准化 #Arguments x :a numeri ...
- 程序员如何 10 分钟用 Python 画出蒙娜丽莎?
之前看到过很多头条,说哪国某人坚持了多少年自学使用excel画画,效果十分惊艳.对于他们的耐心我十分敬佩. 但是作为一个程序员,自然也得挑战一下自己. 这种需求,我们十分钟就可以完成! 基本思路 ...
- 010、MySQL日期时间戳转化为文本日期时间
#时间戳转化文本时间 SELECT from_unixtime( unix_timestamp( curdate( ) ) ); #时间戳转化文本时间格式化 SELECT from_unixtime( ...