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

来源:互联网 发布:淘宝账号怎么实名认证 编辑:程序博客网 时间:2024/04/29 06:21

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


知识点预览

 

 

对象关系映射

应用程序架构


对象关系映射


1.      对象关系映射

a)        数据库编程

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

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

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

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

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

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

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




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

类的继承--表的关联

e)        对象关系映射

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

                                   ii.             属性映射到列

                                 iii.             对象映射到行

 

 



2.      将继承映射到关系

a)        表与抽象类映射

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

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


3.      表与抽象类映射

a)        映射1

 

 

 

b)       映射2

 

 


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

d)       优势

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

支持多态

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

e)        缺点

需要维护多个表

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

直接从表生成报告不方便


4.      表与具体类映射

a)        映射

 


 

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

c)        优势

可以直接从表生成报告

d)       缺点

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

数据重复定义(冗余)


5.      一个表映射所有类

a)        映射

 

 

 


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

c)        优势

模型很容易被理解

支持多态性

很容易从表直接生成报告

d)       缺点

数据库表可能变得非常大

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

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

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

日常维护需要更多时间


6.      对象关系映射

a)        三种方式

                                     i.             表与抽象类映射

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

                                   ii.             表与具体类映射

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

                                 iii.             一个表映射所有类

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

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


7.      Java与SQL数据类型映射

 

 

 


8.      表之间的关系

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

                                     i.             一对一关系

                                   ii.             一对多关系

                                 iii.             多对多关系

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

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

 

 


9.      一对一关系

 

 


 

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

 

 

 

11.  一对多关系

 

 


 

12.  多对多关系

 

 


 

应用程序架构


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

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

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

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

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

数据库(数据层)

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

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

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

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

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

d)       图示

 

 

 

2.      层和组件

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

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

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

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

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

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

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

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

数据库

e)        发展过程

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


3.      两层架构

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

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

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

服务器端只负责存储数据

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

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

C是指client—客户端

S是指server—服务器端

c)        图示

 

 


d)       优点

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

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

e)        缺点

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

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

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

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


4.      三层架构

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

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

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

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

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

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

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

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

允许数据库连接池

允许管理多个数据源连接

可以数据同步

简化了客户端开发

c)        图示

 

 


 

5.      N层架构

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

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

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

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

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

c)        图示

 

 

 


6.      三层和N层架构

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

b)       优点

适合大型软件系统,

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

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

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

c)        缺点

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

整体应用程序复杂性增加