问答题
阅读以下关于Web应用系统架构设计的叙述,在答题纸上回答问题1至问题3。【说明】 某信息技术公司计划开发一套在线投票系统,用于为市场调研、信息调查和销售反馈等业务提供服务。该系统计划通过大量宣传和奖品鼓励的方式快速积累用户,当用户规模扩大到一定程度时,开始联系相关企业提供信息服务,并按照信息服务种类和用户投票数量收取费用。 为了降低开发成本和提高开发效率,项目组经过讨论后决定采用轻量级Java EE开发框架设计系统应用架构。在应用架构设计中,除了满足系统主要功能需求,还需要考虑的因素包括: (1)项目开发采用MySQL数据库存储数据,但将来可能移植到其他数据库平台; (2)系统开发过程中尽可能降低或者消除SQL,语句开发的工作量; (3)投票系统中数据之间的关系复杂,需要支持数据对象的聚合和继承等关系。 项目组基于MVC模式设计出了投票系统的架构,包括表示层、业务逻辑层、数据持久层和数据层。在具体讨论数据持久层采用哪种技术方案时,老王建议采用成熟的Hibemate框架,小李则认为iBatis更加灵活,更适合作为投票系统数据持久层开发技术。
问答题
【问题1】请用300以内文字说明什么是数据持久层,使用数据持久层能够为项目开发带来哪些好处?
【正确答案】正确答案:数据持久层是根据分层思想,通过建立逻辑数据操作接口,采取一定的对象/关系映射策略,隐藏数据库访问代码细节,向业务开发人员提供透明的对象持久化操作机制。 能够为项目开发带来的好处: (1)分离业务逻辑层和数据层,降低两者之间的耦合; (2)通过对象/关系映射向业务逻辑提供面向对象的数据访问; (3)简化数据层访问,隐藏数据库链接、数据读写命令和事务管理细节。
【答案解析】解析:本题考查Web应用系统数据持久层设计相关知识。 此类题目要求考生了解轻量级Java EE开发框架和常用的数据持久层技术,通过认真阅读题目对实际问题的描述,能够根据在线投票系统架构设计中所考虑的因素,选择合适的数据持久层技术。主流的数据持久层技术按照其实现思路可以分为4类技术方案,包括基于数据库连接(JDBC封装)、命令转换(SQL Mapping)、对象关系映射(O/RMapping)和数据持久化对象(Entity Bean),考生在实际应用中,不仅要掌握技术使用方法,更重要的是能够了解其基本原理,便于在实际应用架构设计中选择合适的技术。 本问题考查数据持久层的基本概念以及在实际应用中能够为项目开发带来的好处。数据持久层主要是根据分层思想,通过建立逻辑数据操作接口,采取一定的对象/关系映射策略,隐藏数据库访问代码细节,向业务开发人员提供透明的对象持久化操作机制。具体来说,数据持久层能够带来的好处能够在三层或者多层结构设计中分离业务逻辑层和数据层,解耦两者之间的直接关联;通过对象/关系映射,将面向业务逻辑的数据处理全部以对象形式暴露,将对对象的操作自动转换为基于关系模式的数据库访问操作;在复杂的数据访问操作中,能够利用数据持久层简化数据层的访问,隐藏数据库链接、数据读写命令和事务管理细节,有效提升系统开发效率。
问答题
【问题2】针对在线投票系统的实际应用需求和要求,项目组应选用哪种技术实现数据持久层?请用200字以内文字说明其采用该技术的原因。
【正确答案】正确答案:项目组应该采用Hibemate框架。 原因: (1)Hibernate支持多种不同类型数据库,满足项目组数据库移植需求; (2)Hibemate相对于iBatis减少了SQL语句开发的工作量; (3)iBatis生成的PO是扁平化的,无法像Hibemate一样支持对象的继承和聚合等立体化关系。
【答案解析】解析:本问题考查考生对Hibernate和iBatis这两种持久层技术的掌握情况。Hibernate和iBatis是轻量级Java EE框架中两种数据持久层技术,两者都是优秀的开源项目。iBatis相对简单易学而且更灵活,但开发工作量较大,数据之间是关联关系:Hibernate框架相对复杂,所生成的持久化对象能够表达面向对象中的继承和聚合等关系,开发工作量较小,Hibemate使用更广泛更成熟,能够适应目前所有主流的关系型数据库。根据题目中所描述的考虑因素,系统需要满足数据库的可移植性、开发过程简单、支持对象间的复杂关系等需求,所以选择Hibernate作为数据持久层技术更为合适。
问答题
【问题3】 数据持久层是Web应用系统框架中重要的组成部分,主流的数据持久层技术分别基于不同的技术方案,请在表5-1中(1)~(4)处分别根据(a)~(d)所列技术的方案类别填入其序号。
【正确答案】正确答案:(1)(c) (2)(b) (3)(d) (4)(a)
【答案解析】解析:本问题考查考生对数据持久层基本原理和技术方案的掌握情况。Spring JdbcTemplate通过封装JDBC操作接口实现数据库访问操作,iBatis/MyBatis是通过SQL映射将数据操作请求转换为数据库的SQL操作,Hibemate、JDO和TopLink等技术都采用了对象关系映射的思想,J2EE中的BMP和CMP及FJB3.0都是利用实体Bean对象完成数据访问操作。