目前大多数应用都是基于关系型数据库的,以至于从另外一个角度看应用系统复杂的功能都由数据库实现了,当然,应用系统主要的也就是数据了和业务逻辑。
数据源层的作用是与应用需要的基础设施的不同部分进行通信(不同的数据存储:文本、文件、数据库、网络存储等等),建立起数据到应用系统的关系桥梁。
架构模式
架构模式要解决的问题是驱动领域逻辑访问数据库的方式。
- 行数据入口
- 记录集访问
目前我们的框架两种都支持,findById(ID),findList(*),记录集的访问结果同样也映射到一个个实例中。
行为问题
所谓行为问题,就是如何让各种对象从数据库中读取出来以及存到数据库中。多个对象的读取修改写入数据库是麻烦的,特别是多个操作相同的数据时,如何保证对象中的数据是有效的,也就是同步。
专门解决上述问题的模式就是工作单元,工作单元跟踪所有从数据库中读取的对象以及所有以任务形式修改过的对象,同样负责将更新提交到数据库。当我们调用保存数据的时候,工作单元并不立即执行,二是放入队列中。
加载对象还有另外一个问题,就是对象总是要关联很多个对象的,当某些数据不需要时,如果还要从数据库中取出来,那效率必然底下,为了避免这种低效,不需要的数据必须不加载进来,当然需要的时候还是要能加载,这里就使用到了延迟加载,拥有对象的占位符,而不是实际对象。
读取数据
Find(id),数据查找器,用来隐藏sql查询语句。
结构预设模式
关系映射
即类属性到数据库字段的映射,其中还包括大字段,大对象的映射。
继承
使用元数据
元数据映射基于把映射浓缩到元数据文件的方法(hibernate的xml文件)
数据库连接
数据库的连接是费时的,开启关闭都是一个漫长的过程,当然也就毫秒级的,但是大量的连接关闭是无法忍受的,所有引入了连接池,连接池中一部分一直连接到数据库,使用时直接访问,也不需要断开。
本节内容即Java世界的ORMapping,想想hibernate,对象关系映射,元数据,延迟加载,连接池等等,如今大家在做企业应用时首选hibernate,因为简单方便,兼容多种数据库,当然大量数据加载总是像蜗牛一样,要一等再等。
来源:oschina
链接:https://my.oschina.net/u/926055/blog/133509