框架设计–期中复习作业–习题答案

说明:框架设计期中复习作业范围是第3章~第7章,包括选择题、填空题、判断题。

第3章 Spring AOP

3.1 Spring AOP简介

1、AOP术语中(Advice )表示AOP框架在特定的切入点执行的增强处理,即在定义好的切入点处所要执行的程序代码。
2、以下关于Spring AOP 的介绍错误的是。(C)
A: AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)。
B: AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,这种采用横向抽取机制的方式,采用OOP思想是无法办到的。
C: 虽然AOP是一种新的编程思想,采取横向抽取机制,是OOP的升级替代品。
D: 目前最流行的AOP框架有两个,分别为Spring AOP和AspectJ。

3.2 动态代理

1、Spring中的AOP代理默认就是使用CGLIB代理的方式来实现的。(×)
2、以下有关CGLIB代理相关说法错误的是。(C)
A: CGLIB代理的使用非常简单,但它还有一定的局限性——使用动态代理的对象必须实现一个或多个接口。
B: 如果要对没有实现接口的类进行代理,那么可以使用CGLIB代理。
C: CGLIB是一个高性能开源的代码生成包,在使用时不需要另外导入CGLIB所需要的包。
D: Spring中的AOP代理,可以是JDK动态代理,也可以是CGLIB代理。

3.3 基于代理类的AOP实现

1、在Spring中,使用(ProxyFactoryBean )是创建AOP代理的基本方式。
2、以下不属于ProxyFactoryBean类中的常用可配置属性的是。(C)
A: target
B: proxyInterfaces
C: targetClass
D: interceptorNames

3.4 AspectJ开发

1、AspectJ框架中注解(@Pointcut )用于定义切入点表达式,在使用时还需定义一个包含名字和任意参数的方法签名来表示切入点名称。
2、在Spring配置文件中,aop:aspect子元素的pointcut-ref属性用于指定一个已经存在的(切入点名称)。
3、在Spring的配置文件中,配置切面使用的是(aop:aspect)元素。
4、如果在同一个连接点有多个通知需要执行,那么在同一切面中,目标方法之前的前置通知和环绕通知的执行顺序是未知的,目标方法之后的后置通知和环绕通知的执行顺序也是未知的。( √ )
5、AspectJ框架中的注解@After用于定义最终final通知,不管是否异常,该通知都会执行。( √ )
6、Spring配置文件中的元素下可以包含多个aop:config元素,一个aop:config元素中又可以包含属性和子元素,其子元素包括aop:pointcutaop:advisoraop:aspect。( √ )
7、以下哪种类型不是Spring中的通知类型。( D )
A: 异常通知
B: 前置通知
C: 后置通知
D: 最终通知
8、关于AspectJ注解的介绍,说法错误的是。( D )
A: @Aspect用于定义一个切面
B: @Pointcut用于定义切入点表达式
C: @Before用于定义前置通知,相当于BeforeAdvice
D: @After用于定义后置通知,相当于AfterReturningAdvice
9、关于AspectJ注解的介绍,说法错误的是。( D )
A: @Aspect用于定义一个切面
B: @Pointcut用于定义切入点表达式
C: @Before用于定义前置通知,相当于BeforeAdvice
D: @After用于定义后置通知,相当于AfterReturningAdvice

第4章 Spring的数据库开发

4.1 Spring JDBC

1、JDBC连接数据库时需要4个基本属性,包括有( driverClassName )、url、username和password。
2、JdbcTemplate类的继承关系十分简单。它继承自抽象类(JdbcAccessor),同时实现了JdbcOperations接口。
3、定义jdbcTemplate时,需要将dataSource注入到jdbcTemplate中。( √ )
4、JdbcOperations接口定义了在JdbcTemplate类中可以使用的操作集合,包括添加、修改、查询和删除等操作。( √ )
5、Spring JDBC模块主要由4个包组成,其中不包括。( C )
A: core(核心包)
B: dataSource(数据源包)
C: driverClass(数据库驱动包)
D: support(支持包)
6、JdbcTemplate的直接父类是。( A )
A: JdbcAccessor
B: JdbcOperations
C: JdbcSupper
D: Object
7、JdbcTemplate类包含在Spring JDBC模块的哪个包中。( A )
A: 核心包
B: 数据源包
C: 对象包
D: 支持包

4.2 Spring JdbcTemplate的常用方法

1、JdbcTemplate类中还提供了大量的( query() )方法来处理各种对数据库表的查询操作。
2、JdbcTemplate类中的( update() )方法可以完成插入、更新和删除数据的操作。
3、( @Test )就是Junit4用来测试的注解,要测试哪个方法,只需要在相应测试的方法上添加此注解即可。
4、在使用Junit进行单一测试时,JUnit视图窗口的进度条为绿色表明运行结果正确;如果进度条为红色则表示有错误,并且会在窗口中显示所报的错误信息。( √ )
5、JdbcTemplate类中还提供了大量的query()方法来处理各种对数据库表的查询操作。( √ )
6、在JdbcTemplate类中,提供了大量的更新和查询数据库的方法,我们就是使用的这些方法来操作数据库的。( √ )
7、下面关于update()方法描述错误的是。( A )
A: update()方法可以完成插入、更新、删除和查询数据的操作
B: 在JdbcTemplate类中,提供了一系列的update()方法
C: update()方法执行后,会返回受影响的行数
D: update()方法返回的参数是int类型
8、下面描述中,关于query()方法说法错误的是。( C )
A: List query(String sql, RowMapper rowMapper)会执行String类型参数提供的SQL语句,并通过RowMapper返回一个List类型的结果。
B: List query(String sql, PreparedStatementSetter pss, RowMapper rowMapper)会根据String类型参数提供的SQL语句创建PreparedStatement对象,通过RowMapper将结果返回到List中。
C: List query(String sql, Object[] args, RowMapper rowMapper)会将args参数绑定到SQL语句中,并通过RowMapper返回一个Object类型的单行记录。
D: queryForList(String sql,Object[] args, class elementType)可以返回多行数据的结果,但必须是返回列表,elementType参数返回的是List元素类型。

第5章 Spring的事务管理

5.1 Spring事务管理概述

1、在Spring的所有JAR包中,包含一个名为(spring-tx.RELEASE.jar)的JAR包,该包就是Spring提供的用于事务管理的依赖包。
2、声明式事务管理:是通过(AOP技术 )实现的事务管理。
3、编程式事务管理是通过编写代码实现的事务管理,包括定义事务的开始、正常执行后的事务提交和异常时的事务回滚。( √ )
4、Spring的声明式事务管理可以通过两种方式来实现,一种是基于XML的方式,另一种是基于Annotation的方式。( √ )
5、以下有关事务管理方式相关说法错误的是。( B )
A: Spring中的事务管理分为两种方式:一种是传统的编程式事务管理,另一种是声明式事务管理。
B: 编程式事务管理:是通过AOP技术实现的事务管理,就是通过编写代码实现的事务管理,包括定义事务的开始、正常执行后的事务提交和异常时的事务回滚。
C: 声明式事务管理:其主要思想是将事务管理作为一个“切面”代码单独编写,然后通过AOP技术将事务管理的“切面”代码植入到业务目标类中。
D: 声明式事务管理最大的优点在于开发者无需通过编程的方式来管理事务,只需在配置文件中进行相关的事务规则声明,就可以将事务规则应用到业务逻辑中。
6、以下有关Spring事务管理及核心接口说法错误的是。( D )
A: PlatformTransactionManager接口是Spring提供的平台事务管理器,主要用于管理事务。
B: TransactionDefinition接口是事务定义(描述)的对象,该对象中定义了事务规则,并提供了获取事务相关信息的方法。
C: TransactionStatus接口是事务的状态,它描述了某一时间点上事务的状态信息。
D: 在事务管理过程中,传播行为可以控制是否需要创建事务以及如何创建事务,通常情况下,对于数据的查询、插入、更新和删除操作,必须进行事务管理。
7、下列选项中,哪一个不是Spring中事务管理的核心接口。( D )
A: PlatformTransactionManager
B: TransactionDefinition
C: TransactionStatus
D: TransactionManager

5.2 声明式事务管理

1、Spring的声明式事务管理可以通过两种方式来实现,一种是基于XML的方式,另一种是基于( Annotation )的方式。
2、使用基于注解方式的事务管理需要在使用事务的Spring Bean类或者Bean类的方法上添加注解( @Transactional )。
3、Spring2.0以后,提供了tx命名空间来配置事务,tx命名空间下提供了( tx:advice )元素来配置事务的通知(增强处理)。
4、基于XML方式的声明式事务管理是通过在配置文件中配置事务规则的相关声明来实现的。( √ )
5、以下关于@Transactional注解可配置的参数信息及秒正确的是。( A )
A: value用于指定需要使用的事务管理器,默认为"";
B: read-only用于指定事务是否只读,默认为true;
C: isolation用于指定事务的隔离级别,默认为Isolation.READ_COMMITTED;
D: propagation用于指定事务的传播行为,默认为Propagation. SUPPORTS;
6、以下基于XML方式的声明式事务管理配置文件中tx:advice元素的子元素tx:method属性描述错误的是。( B )
A: name:该属性为必选属性,它指定了与事务属性相关的方法名
B: propagation:用于指定事务的传播行为,它的默认值为SUPPORTS
C: isolation:该属性用于指定事务的隔离级别,其默认值为DEFAULT
D: read-only:该属性用于指定事务是否只读,其默认值为false

第6章 初识MyBatis

6.1 什么是MyBatis

1、( MyBatis )是当前主流的Java持久层框架之一,它与Hibernate一样,也是一种ORM框架。
2、ORM就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。( √ )

6.2 MyBatis的下载和使用

1、使用MyBatis框架非常简单,只需在应用程序中引入MyBatis框架lib目录中的全部JAR包以及数据库驱动包即可进行项目运行。( × )
2、使用ORM框架后,应用程序不再直接访问底层数据库,而是以()的方式来操作持久化对象(PO,即Persisent Object)。( C )
A: 面向业务B: Hibernate C: 面向对象 D: MyBatis

6.3 MyBatis的工作原理

1、mybatis-config.xml作为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,其中主要内容是获取( 数据库连接 )。
2、有关MyBatis工作原理说法错误的是。( C )
A: MyBatis的全局配置文件配置了MyBatis的运行环境等信息,其中主要内容是获取数据库连接
B: MyBatis映射文件中配置了操作数据库的SQL语句,需要在MyBatis的全局配置文件中加载才能执行
C: 可以通过MyBatis的环境等配置信息构建会话对象SqlSession
D: SqlSession对象,该对象中包含了执行SQL的所有方法

6.4 MyBatis入门程序

1、MyBatis的删除操作在映射文件中是通过配置( )元素来实现的。
2、MyBatis映射文件中元素是配置文件的根元素,它包含一个( namespace )属性,该属性为这个指定了唯一的命名空间。
3、使用MySQL中的(concat())函数进行字符串拼接,可以有效防止模糊查询时可能出现的SQL注入问题。
4、MyBatis映射文件中元素是配置文件的根元素,它包含一个namespace属性,该属性为这个指定了唯一的命名空间。( × )
5、MyBatis的更新操作也需要进行事务提交。( √ )
6、创建的映射文件中的SQL语句要以面向对象的写法进行书写。( × )
7、MyBatis的删除操作有关说法错误的是。( D )
A: MyBatis的删除操作在映射文件中是通过配置元素来实现的。
B: MyBatis的删除操作也需要进行事务提交。
C: MyBatis的删除操作执行了SqlSession的delete()方法。
D: MyBatis的删除操作和添加操作时,也需要封装整个实体类。
8、MyBatis的更新操作有关说法错误的是。( D )
A: MyBatis的更新操作在映射文件中是通过配置元素来实现的 。
B: MyBatis的更新操作也需要进行事务提交。
C: MyBatis的更新操作执行了SqlSession的update()方法 。
D: MyBatis的更新操作和添加操作时,只需要将insert()方法改为updat()方法即可。
9、关于MyBatis模糊查询中进行SQL字符串拼接时,说法错误的是。( C )
A: 使用“${}”进行SQL字符串拼接时,无法防止SQL注入问题。
B: 可以使用MySQL中的concat()函数进行字符串拼接。
C: 使用MySQL中的concat()函数进行字符串拼接,也无法防止SQL注入。
D: 使用MySQL中的concat()函数进行字符串拼接,导致数据库移植性变差。

第7章 MyBatis的核心配置

7.1 MyBatis的核心对象

1、SqlSessionFactory是MyBatis框架中十分重要的对象,它是单个数据库映射关系经过编译后的内存镜像,构建每一个数据库的SqlSessionFactory实例时,建议使用原型模式。( √ )
2、SqlSession是MyBatis框架中另一个重要的对象,SqlSession对象包含了数据库中所有执行SQL操作的方法,因为数据库操作相类似所以SqlSession对象可以被共享。( × )

7.2 配置文件

1、对于数据源的配置,MyBatis框架提供了UNPOOLED、( POOLED )和JNDI三种数据源类型。
2、MyBatis框架提供了许多默认别名,由于别名不区分大小写,所以在使用时要注意重复定义的覆盖问题。( √ )
3、关于元素说法错误的是。( D )
A: 元素就是用来在配置文件中注册自定义的类型处理器的,它的使用方式有两种。
B: 通过元素的子元素就可以配置单个类型处理器。
C: 通过元素的子元素可以配置包下的所有类型处理器。
D: 元素的子元素的handler属性用于指定类型处理器所在的包名,系统会在启动时自动的扫描com.itheima.type包下所有的文件,并把它们作为类型处理器。
4、有关MyBatis配置文件中元素的说法错误的是。( C )
A: 元素主要用于改变MyBatis运行时的行为,例如开启二级缓存、开启延迟加载等。
B: 虽然不配置元素,也可以正常运行MyBatis,但是熟悉的配置内容以及它们的作用还是十分必要的。
C: 元素中延迟加载的全局开关的参数lazyLoadingEnabled默认开启。
D: 元素的配置内容大多数都不需要开发人员去配置它,通常在需要时只配置少数几项即可。

7.3 映射文件

1、当数据表中的列和需要返回的对象的属性不完全一致, MyBatis是不会自动赋值的。此时,就可以使用( )元素进行处理。
2、元素的子元素用于表示哪个列是(主键 ),而()元素用于表示POJO和数据表中普通列的映射关系。
3、MyBaits映射文件中使用元素的( refid )属性可以引用自定义的代码片段,其属性值为自定义代码片段的id。
4、MyBatis映射文件中的子元素的order属性可以被设置为( BEFORE )或( AFTER )。
5、的子元素和用于处理多表时的关联关系。( √ )
6、MyBatis映射文件的元素的属性与元素的属性大部分相同,但还包含了3个特有属性。( √ )
7、映射文件中可以包含多个id值相同的元素。( × )
8、与元素一样,和元素在执行完之后,也会返回一个表示影响记录条数的整数。( √ )
9、以下有关元素说法错误的是。( C )
A: 元素的作用就是定义可重用的SQL代码片段,然后在其他语句中引用这一代码片段。
B: 使用元素的refid属性可以引用自定义的代码片段。
C: 使用元素refid的属性值为自定义代码片段的name。
D: 元素是元素的子元素。
10、以下有关MyBatis映射文件中元素说法正确的是。( C )
A: 元素用于映射插入语句,在执行完元素中定义的SQL语句后,没有返回结果。
B: 元素的属性与元素的属性相同。
C: keyColumn属性用于设置第几列是主键,当主键列不是表中的第一列时需要设置。
D: useGeneratedKeys(仅对insert有用)此属性会使MyBatis使用JDBC的getGeneratedKeys()方法来获取由数据库内部生产的主键。
11、以下关于元素及其属性说法错误的是。( C )
A: 元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给业务开发人员。
B: parameterType属性表示传入SQL语句的参数类的全限定名或者别名。
C: resultMap表示外部resultMap的命名引用,返回时可以同时使用resultType和resultMap
D: 在同一个映射文件中可以配置多个元素。

《推荐文章》
框架设计–第三章 Spring AOP–习题答案
框架设计–第四章 Spring的数据库开发–习题答案
框架设计–第五章 Spring的事务管理–习题答案
框架设计–第六章 初识MyBatis–习题答案
框架设计–第七章 MyBatis的核心配置–习题答案

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章