上QQ阅读APP看书,第一时间看更新
1.3 数据访问层
图1.11 数据访问层在多层架构中的地位
数据访问层又称为DAL(Data Access Layer),有时候也称持久层或持久化层(Persistence Layer),主要负责数据的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。简单来说,就是实现对数据表的Select、Insert、Update、Delete等操作,也就是常说的增删改查操作,英文缩写为CRUD(即增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete))。如果要加入ORM(Object Relation Mapping,对象关系映射,请参见1.5节及第5章)的元素,那么就会包括对象和数据表之间的映射,以及对象实体的持久化。数据访问层在多层架构中的地位如图1.11所示。
狭义的理解,“持久化”仅指把领域对象(Domain Object,即业务对象(Business Object),属于业务逻辑层)永久保存到数据库中;广义的理解,“持久化”包括和数据库相关的各种操作,具体如下。
- □ 保存:把业务对象永久保存到数据库。
- □ 更新:更新数据库中业务对象的状态。
- □ 删除:从数据库中删除一个业务对象。
- □ 加载:根据特定的OID(Object IDentifier,对象标识符,具有唯一性),把一个业务对象从数据库加载到内存。
- □ 查询:根据特定的查询条件,把符合查询条件的一个或多个业务对象从数据库加载在内存中。
持久化技术封装了数据访问细节,为大部分业务逻辑提供了面向对象的API,其优点主要如下。
- □ 通过持久化技术可以减少访问数据库的数据次数,增加应用程序执行速度;
- □ 代码重用性高,能够完成大部分数据库操作;
- □ 松散耦合,使持久化不依赖于底层数据库和上层业务逻辑实现,更换数据库时只需修改配置文件而不用修改代码。
在数据访问层(即持久化层)中可以使用数据库访问接口直接访问数据库(请参见1.4节),也可以使用某种持久化框架来访问数据库。目前广泛使用的持久化框架包括Hibernate(请参见第5章)、MyBatis(原来的iBatis已更名为MyBatis)等。