数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
学习Ambler的Persistence Layer文档的笔记

作者:未知 来源:月光软件站 加入时间:2005-6-5 月光软件站

学习Ambler的Persistence Layer文档的笔记

1. 持久化层必须满足的需求
  除了关系型数据库,还应该支持文件格式、面向对象数据库等等存储格式
  在持久化层中完全封装数据库操作,例如save、delete等等
  可以同时返回过个数据对象,而不是每次只能够返回一个
  支持事务
  对象标识,类似Table中的PK
  游标Cursor,不能够一次返回某个对象的成百上千实例,那么就需要Cursor来完成这个任务,完成与后台数据库的操作
  在某些情况下,不需要对象的完全信息数据(员工列表只需要员工的姓名,不需要其它的信息),这需要代理对象来完成对真实数据对象的封装(员工的代理类,只有ID和姓名)
  对于报表,需要的大量的数据记录Record而不是一个个的数据对象DataObject,所以需要Record
  满足系统架构变动
  满足数据库的版本变动
  多连接
  出于性能的考虑,可能需要在某些特殊情况下输入SQL来完成DB的操作,那么持久化层要满足允许输入SQL

2. 持久化层实现手法
  三种
    一个类一个Table对应,一个继承树使用一套PK来作为各个Table的PK,各自类对应的Table中只包含自己的Attribute
    对于每一个Concrete类对应一个Table,每个类有自己的一套PK,每个类的Attribute包含其父类的Attribute
    对于所有的类使用一个Table,所有类,无论子类还是父类,属性都放在一张表中

3. 类之间的关联关系
  使用FK来解决掉
  如果出现多对多的关系,就使用一个中间表来记录两个实际类的多对多关系

4. 持久化层所涉及到的类
  ClassMap,类的集合,封装了行为,需要被映射到Table中的类的集合
  Cursor,封装了Cursor的概念
  PersistenceBroker,维护到持久化层的连接,处理持久化层和其他层次的通信
  PersistentCriteria,是一个类层次,这个类层次封装了一些行为,这些行为总体上来说是对DB中数据的筛选,但是不是通过PersistentObject的那种OID进行筛选,而是通过了Object的一组属性集合进行筛选
  PersistenceMechanism,访问DB的机制问题,对应于FlatFile,Relation DB和OO DB可能是不同的机制
  PersistentObject,封装了能够对应到领域模型种类
  PersistentTransaction,封装了事务
  SqlStatement,支持SQL Query

5. 实现上还是不清楚的,有几个例子可以看看
  Delphi,Depo,好像是巴西人做的一个比较好完成Ambler的文档所介绍的ORM的作品
  另外是Hibernate,java的对象持久化,还没有看过,好像是插件方式的,不知道,要看看哦!!!!
  .Net上面的么?不知道,

6. 总体的感觉,就是通过了Xml文件配置,对Assembly进行了反射,然后呢?不知道,难道就是使用么?
  
7. 今天同时看到的新闻,MS的申请ORM的专利,faint




相关文章

相关软件