"专高2第十七单元的练习手册涵盖了大数据专业高级2-16.0课程中的内容,主要涉及MyBatis框架、Spring框架的事务管理以及SQL优化等相关知识。"
在MyBatis框架中,`resultMap`是一个非常重要的元素,它允许我们精细控制结果集的映射。`resultMap`不仅可以作为一个独立的标签来定义复杂的映射规则,如一对一、一对多的关系映射,还可以作为其他标签(如`select`)的属性来引用已定义的映射,以便简化代码并提高可维护性。在描述中提到的第一道判断题中,确认了`resultMap`的这一双重角色,答案是A.正确。
Spring框架的XML配置文件中确实可以配置资源文件,例如`db.properties`,以便读取数据库连接等配置信息,这有助于将配置与代码分离,方便管理和部署。第二题的答案也是A.正确。
关于MyBatis和Hibernate在SQL优化上的比较,这是一个主观的话题,具体取决于应用场景。通常,MyBatis由于其手动编写的SQL,可能在某些情况下提供更好的性能优化,但Hibernate提供了更高的抽象层次和自动化管理,对初学者更为友好。第三题的答案可能是B.错误,因为是否“高于”取决于具体情况。
接下来的题目涉及到Spring的事务管理。`TransactionDefinition`是Spring事务管理的核心接口,其中的传播行为属性如`PROPAGATION_NESTED`、`PROPAGATION_MANDATORY`、`PROPAGATION_NEVER`、`PROPAGATION_NOT_SUPPORTED`和`PROPAGATION_SUPPORTS`等,定义了在不同事务环境下,方法应该如何运行。第四至第八题分别对应这些传播行为的解释,它们都是正确的。
- `PROPAGATION_NESTED`:A.正确,表示如果已有事务,则开启嵌套事务;无事务则新建。
- `PROPAGATION_MANDATORY`:A.正确,若已有事务则加入,否则抛异常。
- `PROPAGATION_NEVER`:A.正确,非事务环境运行,有事务则抛异常。
- `PROPAGATION_NOT_SUPPORTED`:A.正确,非事务环境运行,若有事务则挂起。
- `PROPAGATION_SUPPORTS`:A.正确,可选事务,有则用,无则非事务运行。
第九题的描述未给出完整,但从上下文推断,应该是关于`PROPAGATION_REQUIRED`的描述,这是最常用的传播行为,表示方法必须在事务中运行,如果已有事务则加入,否则新建。所以答案也是A.正确。
这些题目覆盖了MyBatis的基础知识、Spring的事务管理策略,以及框架间的比较,都是大数据专业高级学习中不可或缺的部分。通过这些练习,学员可以深化对这些关键概念的理解和应用。