Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构


知识点预览

对象关系映射

应用程序架构


对象关系映射


1.对象关系映射

a)数据库编程

关系是指目前最常用的关系型数据库:MySQL,Oracle……

需要将数据和对象进行相互转换

一般情况下,一行数据封装成一个对象

b)在面向对象的模型中,数据是作为属性存储

有一个学生对象,有学号,姓名,年龄属性,这些属性值表达了一个学生信息

c)在关系数据库中,数据用行存储

一个学生表,有学号,姓名,年龄列,一行数据就表示一个学生信息


Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...


d)面向对象的类关系模型与数据库的表关系模型相映射

类的继承--表的关联

e)对象关系映射

i.类关系映射到表及表关联

ii.属性映射到列

iii.对象映射到行

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...



2.将继承映射到关系

a)表与抽象类映射

b)表与具体类(非抽象类)映射

c)一个表映射整个继承层次中的所有类


3.表与抽象类映射

a)映射1

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...

b)映射2

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...


c)特点:为抽象类创建映射表,通过主外键映射类关系

d)优势

这种方式最符合面向对象的概念

支持多态

因为没有重复数据,所以容易维护

e)缺点

需要维护多个表

需要更长时间来读取和写入表

直接从表生成报告不方便


4.表与具体类映射

a)映射

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...


b)特点:只对具体类映射到表,抽象父类中的属性在所有的具体子类映射表中去实现

c)优势

可以直接从表生成报告

d)缺点

如果修改数据,则必须修改相关的所有表

数据重复定义(冗余)


5.一个表映射所有类

a)映射

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...


b)特点:简单,一个表包含所有类的属性

c)优势

模型很容易被理解

支持多态性

很容易从表直接生成报告

d)缺点

数据库表可能变得非常大

很难应用数据库的约束规则

类中每次添加新属性,都需要更改数据库表

当添加一个新列时,需要更新所有记录这列的值

日常维护需要更多时间


6.对象关系映射

a)三种方式

i.表与抽象类映射

多个表关联,没有重复数据

ii.表与具体类映射

多个表没有关联,生成报告方便,数据冗余

iii.一个表映射所有类

只有一个表,维护困难,生成报告方便

b)各有优缺点,根据需要选择


7.Java与SQL数据类型映射

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...


8.表之间的关系

a)数据库中通过外键保持表之间的关系

i.一对一关系

ii.一对多关系

iii.多对多关系

b)一个表的外键是另一个表的主键

c)对于一对一或一对多关系,使用一个表中的主键和其他表的外键相关联

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...


9.一对一关系

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...


10.映射到两个类的一个表

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...

11.一对多关系

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...


12.多对多关系

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...


应用程序架构


1.分层应用程序体系结构概述

a)层是一个软件功能模块,提供功能完整的应用程序的某些部分

一个学生成绩管理系统可以分为:登陆部分,查询部分,访问数据库部分,成绩显示部分,数据库部分

登陆部分和成绩显示部分是学生可以直接看见的(显示层)

查询部分,访问数据库部分(业务层)

数据库(数据层)

各个部分可以在一台电脑中,也可以位于不同的电脑中;可以是桌面程序,也可以是WEB程序

b)层一般是独立的,可以独立更新

逻辑意义上的独立:可以独立开发,可以独立更新,修改时相互不受影响,可以位于不同的电脑上

c)可以使用层来协调多个客户端

每个客户端可以看做是一个层

d)图示

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...

2.层和组件

a)所有软件系统都可以划分成三个主要部分

b)显示层— 接收数据处理请求并显示数据,通常在第一层

用户直接使用的层,用户通过显示层提交请求,展示结果

c)业务逻辑层 — 实现业务规则

在两层结构中,处于第一层中

在三层或n层结构中,处于第二层中

业务逻辑处理(判断用户请求是否合理,编码转换等),数据访问

d)数据层 — 存储并允许访问数据 ,通常是在第三层

数据库

e)发展过程

两层结构三层结构n层结构


3.两层架构

a)除数据库以外,其他所有部分作为一个单独的层(客户端)

显示层与业务逻辑层合在一起作为一个单独的层

客户端负责显示数据,业务逻辑,错误检查…

服务器端只负责存储数据

主要部分全部集中在客户端,导致客户端很庞大

b)这种体系结构是一种客户端/服务器结构(C/S结构)

C是指client—客户端

S是指server—服务器端

c)图示

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...


d)优点

适用于小型应用程序,开发方便,开发周期短

如果客户增加,增加一个新的客户端就可以了

e)缺点

客户端应用程序负责所有的错误检查,数据显示,业务逻辑等,过于庞大

在网络上,数据被暴露,客户端可以直接访问数据,安全性不高

数据库或表发生变化会导致客户端代码发生较大的改动

每个客户端需要安装驱动程序


4.三层架构

a)显示层—业务逻辑层—数据层

请求由显示层(客户端)发送到中间层(业务逻辑层)

中间层处理业务逻辑并将SQL语句发送到数据库

数据库处理SQL语句,并将结果发送回中间层

中间层将结果发送给用户(通过显示层显示)

b)三层架构的重点是中间层(业务逻辑层)

中间层可以缓存数据,并管理业务规则

有专门处理业务规则的代码

允许数据库连接池

允许管理多个数据源连接

可以数据同步

简化了客户端开发

c)图示

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...


5.N层架构

a)N层体系架构扩展三层架构,将需要单独处理的功能独立出来作为一个新的层

一般是对业务逻辑层进行扩展

b)将一个应用程序从水平或垂直方向划分为N层体系结构

水平划分:软件系统有一个发送短信的功能模块,获得客户端请求后,先通过发送短信的模块,然后交给后续的模块处理其他业务逻辑

垂直划分:软件系统中有一个打印报表的功能模块,可以不经过其他业务模块直接访问数据库获得数据打印报表,与其他业务功能是平行的

c)图示

Oracle培训(三十三)—JDBC第六章知识点总结——JDBC高级特性4--对象关系映射,应用程序架构...


6.三层和N层架构

a)一般首选三层或n层架构

b)优点

适合大型软件系统,

简化了大型软件系统的开发,降低了大型软件系统的开发难度

结构清晰,各部分作用明确

可以分模块更新,不会影响到其他模块

c)缺点

三层或多层中故障点的数量可能会增加

整体应用程序复杂性增加