2023软件测试选择、填空、判断、简答题库全整理痛苦版(马后炮系列)【太原理工大学】

为啥考后要更呢?

因为考前没时间,靠后没事干。【笑哭】

就给下一届的学弟学妹看吧,反正题库每年都差不多一样,我直接整理到这里大家就不用找了!(有些简答题库没有,是往年题的,我也整理到这大家就不用翻了)

今年和往年也一样,从题库出这几种题(简答今年考的是“jdk动态代理和cglib动态代理的区别”题库没有,书上有描述还有一个简答是描述控制反转和依赖注入,并说明两者关系(题库有)选择填空判断从题库出)

第一章Spring的基本应用

填空题

1.依赖注入的作用就是在使用Spring框架创建对象时,动态的将其所依赖的对象注入到【】组件中。
2.在使用Spring?框架之后,对象的实例不再由调用者来创建,而是由【】来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。
3.在Spring入门程序中只需将Spring的4个基础包以及【】的JAR包复制到b目录中,并发布到类路径下即可
4.简单来说,BeanFactory.就是一个管理Bean的工厂它主要负责初始化各种Bean,并调用它们的【
方法。
5.Spring开发所需的JAR包分为两个部分:【】和【】。

答案:1.Bean 2.Spring容器 3.commons-logging 4.生命周期 5.Spring框架包、第三方依赖包

判断题

1.Spring中基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。()
2.通常在Java项目中会采用通过FileSystemXmlApplicationContext类来实例化ApplicationContext容器的方式。()
3.初学者学习Spring框架时,只需将Spring的4个基础包以及commons-logging.jar复制到项目的lib目录,并发布到类路径中即可。()
4.依赖注入的作用就是在使用Spring?框架创建对象时,动态的将其所依赖的对象注入到Bean组件中。()
5.
Spring?框架采用的是分层架构,它一系列的功能要素被分成20个模块。()

答案:对错对对对

选择题

1.以下关于Spring核心容器相关说法错误的是。()
A:Spring框架的所有功能都是通过其核心容器来实现的。
B:创建BeanFactory:实例时,需要提供SpringP所管理容器的详细配置信息,这些信息通常采用XML文件形式来管理。
C:ApplicationContext不仅包含了BeanFactory的所有功能,还添加了对国际化、资源访问、事件传播等方面的支持。
D:通常在Java项目中,会采用通过ClassPathXmlApplicationContext类来实例化
ApplicationContext容器的方式,而在Web项目中,ApplicationContext容器的实例化工作会交由Web服务器来完成。
2.以下有关Spring的四个基础包说法正确的是。()
A:Spring的四个基础包,它们分别对应Spring Web容器的四个模块。
B:Spring的四个基础包有spring-core..RELEASE.jar、spring-beans-.RELEASE.jar
spring-context-.RELEASE.jarspring-aop-.RELEASE.jar.
C:spring-context--.RELEASE.jar是所有应用都要用到的JAR包,它包含访问配置文件以及进行IoC或者DI操作相关的所有类。
D:spring-core.RELEASE.jar包含Spring框架基本的核心工具类,Spring其它组件都要用到这个包里的类,是其它组件的基本核心。
3.以下有关Spring框架优点的说法正确的是。【】
A:Spring具有简单、可测试和松耦合等特点,从这个角度出发,Spring就是应用于任何Java应用的开发中;
B:Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性
C:Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,杜绝了组件之间的耦合性
D:Spring增加了Java EE开发中一些API的使用难度
4.Spring的核心容器是其他模块建立的基础,以下哪个
不是该容器的组成模块。()
A:Beans模块
B:Core模块
C:Context模块
D:AOP模块
5.下列选项中,不属于Spring框架优点的是。【】
A:提供强大的、可以有效减少页面代码的标签
B:声明式事务的支持。
C:方便解耦、简化开发
D:方便集成各种优秀框架

答案:ADBDA

简答题

1.Spring依赖注入通常有哪些实现方式,列举并分别进行说明。

Spring的实现方式通常有两种,一种是属性setter方法注入,另一种是构造方法注入。属性setter,方法注入是指IoC容器使用setter方法来注入被依赖的实例。通过调用无参构造器或无参静态工厂方法实例化Bean后,调用该Bean的setter方法,即可实现基于setter方法的依赖注入。构造方法注入是指oC容器使用构造方法来注入被依赖的实例。基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。

2.请简述Spring框架的优点。


1、Spring框架的优点如下:
(1)非侵入式设计:Spring是一种非侵入式(non-invasive)框架,它可以使应用程序代码对框
架的依赖最小化。
(2)方便解耦、简化开发:Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,大大的降低了组件之间的耦合
(3)支持AOP:Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性。
(4)支持声明式事务处理:只需要通过配置就可以完成对事务的管理,而无需手动编程。
(5)方便程序的测试:Spring提供了对Junit4的支持,可以通过注解方便的测试Spring程序。
(6)方便集成各种优秀框架:Spring?不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、.Hibernate、MyBatis、.Quartz等)的直接支持。
(7)降低了Java EE API的使用难度:Spring对Java EE开发中非常难用的一些API(如:JDBC、JavaMail等),都提供了封装,使这些API应用难度大大降低。

3.请简述什么是Spring的IoC和DI。

IoC的全称是Inversion of Control,中⽂名称为 控制反转。控制反转就是指在使⽤Spring框架之后, 对象的实例不再由调⽤者来创建,⽽是由Spring容器 来创建,Spring容器会负责控制程序之间的关系,⽽ 不是由调⽤者的程序代码直接控制。这样,控制权由 应⽤代码转移到了Spring容器,控制权发⽣了反转。 DI的全称是Dependency Injection,中⽂称之为依赖 注⼊。它与控制反转(IoC)的含义相同,只不过这 两个称呼是从两个⻆度描述的同⼀个概念。从Spring 容器的⻆度来看,Spring容器负责将被依赖对象赋值 给调⽤者的成员变量,这相当于为调⽤者注⼊了它依 赖的实例,这就是Spring的依赖注⼊。


第二章Spring中的Bean

填空题

l.所谓自动装配,就是将一个Bean自动的注入到到其
他Bean的【】中。
2.@Controller通常作用在控制层,如Spring MVC的【】,用于将控制层的类标识为Spring中的Bean,其功能与@Component相同。
3.【】注解用于将数据访问层(DAO层)的类标识为Spring中的Bean,其功能与@Component相同。
4.对于【】作用域的Bean,Spring只负责创建,当容器创建了Bean实例后,Bean的实例就交给客户端代码来管理,Spring容器将不再跟踪其生命周期。
5.实例工厂方式采用直接创建Bean实例的方式,在配置文件中,需要实例化的Bean是通过【】属性指向配置的实例工厂,然后使用factory-.method属性确定使用工厂中的哪个方法。

1.Property 2.Controller 3.@Repository 4.prototype 5.factory-bean

判断题

@Component注解用于描述Spring中的Bean,它是个泛化的概念,仅仅表示一个组件,并且可以作用在任何层次,使用时只需将该注解标注在相应方法上即可。()
Spring提供了3种基于XML的装配方式:设值注入、构造注入和属性注入。()
每次客户端请求singleton作用域的Bean时,Spring?容器都会创建一个新的实例,并且不会管那些被配置成singleton作用域的Bean的生命周期。()
Spring中使用prototype定义的Bean在Spring?容器中将只有一个实例,也就是说,无论有多少个Bean引用它,始终将指向同一个对象。()
对于prototype作用域的Bean,Spring只负责创建,当容器创建了Bean实例后,Bean的实例就交给客户端代码来管理,Spring容器将不再跟踪其生命周期。()

错错错错对

选择题

l.Springl的<bean>元素中的autowire/属性取值不包括以
下。()
A:default B:byName C:byType D:byld
2.以下有关Bean的装配方式说法正确的是。()
A:Spring容器支持多种形式的Bean的装配方式,如基于XL的装配、基于注解(Annotation)的装配和自动装配(其中最常用的是基于XML的装配);
B:Spring提供了3种基于XML的装配方式:设值注入、构造注入和属性注入;
C:在Spring实例化Bean的过程中,Spring首先会调用Bean的默认构造方法来实例化Bean对象,然后通过反射的方式调用setter方法来注入属性值;
D:设值注入要求一个Bean必须提供一个有参构造方法并且为需要注入的属性提供对应的setter方法。
3.以下哪些不属于Spring4.3版本中Bean的作用域。()
A:application
B:request
C:response
DglobalSession
4.Springt中定义了一系列的注解,以下有关其常用的注解说明错误的是。()
A:@Autowired用于对Bean的属性变量、属性的setter方法及构造方法进行标注,配合对应的注解处理器完成Bean的自动配置工作,默认按照Bean的名称进行装配。
B:@Repository.用于将数据访问层(DAO层)的类标识为Spring中的Bean。
C:@Service通常作用在业务层(Service层),用于将业务层的类标识为Spring中的Bean。
D:@Controller通常作用在控制层(如Spring MVC的Controller),用于将控制层的类标识为Spring中的Bean.
5.下列选项中,不属于Spring中实例化Bean的方式的是。()
A:构造器实例化B:静态工厂方式实例化
C:实例工厂方式实例化D:抽象方法实例化

DCCAD

简答题

Spring中基于XML的装配方式中设值注入需要满足以下两点要求:
1、Bean类必须提供一个默认的无参构造方法。
2、Bean类必须为需要注入的属性提供对应的setter方法

请简述Bean的生命周期。

1、Bean的生命周期的整个执行过程描述如下。
(1)根据配置情况调用Bean构造方法或工厂方法实例化Bean。
(2)利用依赖注入来完成Bean中所有属性值的配置注入。
(3)如果Bean实现了BeanNameAware:接口,则Spring调用Bean的setBeanName()方法传入当前Bean的id值。
(4)如果Bean实现了BeanFactoryAware接口,则Spring调用setBeanFactory()方法传入当前工厂实例的引用。
(5)如果Bean实现了ApplicationContextAware:接口,则Spring调用setApplicationContext0方法传入当前ApplicationContext?实例的引用。
(6)如果BeanPostProcessor和Bean关联,则Spring将调用该接口的预初始化方法postProcessBeforeInitialzation(对Bean进行加工操作,这个非常重要,Spring的AOP就是用它实现的。
(7)如果Bean实现了InitializingBean接口,则Spring>将调用afterPropertiesSetO)方法。
(8)如果在配置文件中通过init-method属性指定了初始化方法,则调用该初始化方法。
(9)如果有BeanPsostProcessor和Bean关联,则Spring将调用该接口的初始化方法postProcessAfterInitialization()。比时,Bean已经可以被应用系统使用了。
(10)如果在<bean>中指定了该Bean的作用范围为scope-"singleton'",则将该Bean放入Spring IoC的缓存池中,将触发Spring对该Bean的生命周期管理;如果在<bean>中指定了该Bean的作用范围为scope--"prototype'",则将该Bean交给调用者,调用者管理该Bean的生命周期,Spring?不再管理该Bean.
(l1)如果Bean实现了DisposableBean接口,则Spring会调用destory()方法将Spring中的Bean销毁;如果在配置文件中通过destory-method,属性指定了Bean的销毁方法,则Spring将调用该方法进行销毁。

请简述Bean的几种装配方式的基本用法

Bean中主要包含三种装配⽅式,分别为基于 XML的装配,基于Annotation的装配和⾃动装配,这 三种装配⽅式的⽤法如下: (1)基于XML的装配:Spring提供了2种基于 XML的装配⽅式:设值注⼊(Setter Injection)和构 造注⼊(Constructor Injection)。设置注⼊中的Bean 类必须提供⼀个默认的⽆参构造⽅法,同时必须为需 要注⼊的属性提供对应的setter⽅法。使⽤设值注⼊ 时,在Spring配置⽂件中,需要使⽤元素的⼦ 元素来为每个属性注⼊值。使⽤构造注⼊ 时,在配置⽂件⾥,需要使⽤元素的⼦元素 来定义构造⽅法的参数,可以使⽤ 其value属性(或⼦元素)来设置该参数的值。 (2)基于Annotation的装配:使⽤基于Annotation 的装配时,⾸先需要使⽤@Repository、@Service与 @Constroller 分别对实现类进⾏标注 ,然后 ⽤ @Autowired或@Resource注解对注⼊的Bean的属性进 ⾏标注,最后在 Spring 的配置⽂件中, 通 过 来开启注解处理器,或使 ⽤的配置⽅式即可实现Annotation的装配。 (3)⾃动装配:在元素中使⽤autowire属 性,并将其属性值设置为byName或者byType即可实 现⾃动装配。


第三章SpringAOP

填空题

1.AspectJ框架中注解【】用于定义切入点表达式,在使用时还需定义一个包含名字和任意参数的方法签名来表示切入点名称。
2.在Spring配置文件中,<aop:aspect>子元素的pointcut-ref属性用于指定一个已经存在的【】。
3.在Spring的配置文件中,配置切面使用的是【】元素。
4.在Spring中,使用【】是创建AOP代理的基本方式。
5.AOP术语中【】表示AOP框架在特定的切入点执行的增强处理,即在定义好的切入点处所要执行的程序代码。

1.@Pointcut2.切入点名称3.<aop:aspect4.ProxyFactoryBean5.Advice

判断题

1.如果在同一个连接点有多个通知需要执行,那么在同一切面中,目标方法之前的前置通知和环绕通知的执行顺序是未知的,目标方法之后的后置通知和环绕通知的执行顺序也是未知的。()
2.AspectJ框架中的注解@After用于定义最终final通知,不管是否异常,该通知都会执行。()
3.Spring配置文件中的<beans>元素下可以包含多个<aop:config>元素,一个<aop:config>元素中又可以包含属性和子元素,其子元素包括<aop:pointcut>、
<aop:advisor>和<aop:aspect>。()
4.Spring中的AOP代理默认就是使用CGLB代理的方式来实现的。()
5.Spring3.0以后,Spring AOP引入了对AspectJ的支持,并允许直接使用AspectJ进行编程,而Spring自身的AOP API1也尽量与AspectJ保持一致。()

对对对错错

选择题

1.以下不属于ProxyFactoryBean类中的常用可配置属性
的是。()
A:target
B:proxyInterfaces
C:targetClass
D:interceptorNames
2.以下哪种类型不是Springt中的通知类型。()
A:异常通知
B:前置通知
C:后置通知
D:最终通知
3.关于Aspect.]注解的介绍,说法错误的是。()
A:@Aspect用于定义一个切面
B:@Pointcut用于定义切入点表达式
C:@Before用于定义前置通知,相当于BeforeAdvice
D:@After用于定义后置通知,相当于AfterReturningAdvice
4.以下有关CGLIB代理相关说法正确的是。()
A:CGLIB代理的使用非常简单,但它还有一定的局限性—使用动态代理的对象必须实现一个或多个接口。
B:如果要对没有实现接口的类进行代理,那么可以使用CGLIB代理。
C:CGLB是一个高性能开源的代码生成包,在使用时需要另外导入CGLIB所需要的包。
D:Spring中的AOP代理,可以是JDK动态代理,也可以是CGLIB代理。
5.以下关于Spring AOP的介绍错误的是。()
A:AOP的全称是Aspect--Oriented Programming,即面向切面编程(也称面向方面编程)
B:AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,这种采用横向抽取机制的方式,采用OOP思想是无法办到的。
C:虽然AOP是一种新的编程思想,采取横向抽取机制,是OOP的升级替代品。
D:目前最流行的AOP框架有两个,分别为SpringAOP和AspectJ。

CDDCC

简答题

请对Spring的通知类型进行简要说明。

Spring中主要包含5种通知类型,分别是环绕通知,前置通知,后置通知,异常通知和引介通知。其中,环绕通知表示在目标方法执行前后实施增强,可以应用于日志、事务管理等功能。前置通知表示在目标方法执行前实施增强,可以应用于权限管理等功能。后置通知表示在目标方法执行后实施增强,可以应用于关闭流、上传文件、删除临时文件等功能。异常通知表示在方法抛出异常后实施增强,可以应用于处理异常记录日志等功能。引介通知表示
在目标类中添加一些新的方法和属性,可以应用于修改老版本程序(增强类)。

请列举你所知道的AOP专业术语并解释。

1、AOP的专业术语包括Aspect、Joinpoint、Pointcut、Advice、Target Object、Proxy和Weaving,
对于这些专业术语的解释,具体如下:
(1)Aspect(切面):在实际应用中,切面通常是指封装的用于横向插入系统功能(如事务、日志等)的类,如图3-1中的Aspect。.i该类要被Spring容器识别为切面,需要在配置文件中通过<bean>元素指定。
(2)Joinpoint(连接点):在程序执行过程中的某个阶段点,它实际上是对象的一个操作,例如方法的调用或异常的抛出。在Spring AOP中,连接点就是指方法的调用。
(3)Pointcut(切入点):是指切面与程序流程的交叉点,即那些需要处理的连接点,如图3-2所示。通常在程序中,切入点指的是类或者方法名,如某个通知要应用到所有以add开头的方法中,那么所有满足这一规则的方法都是切入点。
(4)Advice(通知/增强处理):AOP框架在特定的切入点执行的增强处理,即在定义好的切入点处所要执行的程序代码。可以将其理解为切面类中的方法,它是切面的具体实现。
(5)Target Object(目标对象):是指所有被通知的对象,也被称为被增强对象。如果AOP框架采用的是动态的AOP实现,那么该对象就是一个被代理对象。
(6)Proxy(代理):将通知应用到目标对象之后,被动态创建的对象。
(7)Weaving(织入):将切面代码插入到目标对象上,从而生成代理对象的过程。

2、Spring中的通知按照在目标类方法的连接点位
置,可以分为以下5种类型:
(1 )org.aopalliance.intercept.MethodInterceptor(环绕通知)在目标方法执行前后实施增强,可以应用于日志、事务管理等功能。
(2)org.springframework.aop.MethodBeforeAdvice(前置通知)在目标方法执行前实施增强,可以应用于权限管理等功能。
(3)org.springframework.aop.AfterReturningAdvice(后置通知)在目标方法执行后实施增强,可以应用于关闭流、上传文件、删除临时文件等功能。
(4)org.springframework.aop.ThrowsAdvice通知)在方法抛出异常后实施增强,可以应用于处理异常记录日志等功能。
(5)org.springframework.aop.IntroductionInterceptor(引介通知)在目标类中添加一些新的方法和属性,可以应用于修改老版本程序(增强类)


第四章Spring的数据库开发

填空题

l.JdbcTemplate类中还提供了大量的【】方法来处理各种对数据库表的查询操作。
2.JdbcTemplate类中的【】方法可以完成插入、更新和删除数据的操作。
3.【】就是Junit4用来测试的注解,要测试哪个方法,只需要在相应测试的方法上添加此注解即可。
4.JDBC连接数据库时需要4个基本属性,包括有【】、url、username和password.
5.JdbcTemplate类的继承关系十分简单。它继承自抽象类【】,同时实现了JdbcOperations接口。

1.query()2.update()3.@Test4.driverClassName5.JdbcAccessor

判断题

1.在使用Junit进行单一测试时,JUnit视图窗口的进度条为绿色表明运行结果正确;如果进度条为红色则表示有错误,并且会在窗口中显示所报的错误信息。()
2.定义jdbcTemplate时,需要将dataSource注入到jdbcTemplate中。()
3.JdbcOperations接口定义了在Jdbc Template类中可以使用的操作集合,包括添加、修改、查询和删除等操作。()
4.JdbcTemplate类中还提供了大量的query()方法来处理各种对数据库表的查询操作。()
5.在JdbcTemplate:类中,提供了大量的更新和查询数据库的方法,我们就是使用的这些方法来操作数据库的。()

对对对对对

选择题

1.Spring JDBC模块主要由4个包组成,其中不包括。(
A:core(核心包)
B:dataSource(数据源包)
C:driverClass(数据库驱动包)
D:support(支持包)
2.JdbcTemplatel的直接父类是。()
A:JdbcAccessor
B:JdbcOperations
C:JdbcSupper
D:Object
3.JdbcTemplate类包含在Spring JDBC模块的哪个包中。()
A:核心包
B:数据源包
C:对象包
D:支持包
4.下面关于update(方法描述错误的是。
A:updateO方法可以完成插入、更新、删除和查询数据的操作
B:在JdbcTemplate类中,提供了一系列的update()方法
C:update(方法执行后,会返回受影响的行数
D:update()方法返回的参数是int类型
5.下面描述中,关于query0方法说法错误的是。()
A:List query(String sql,RowMapper rowMapper)行String类型参数提供的SQL语句,并通过RowMapperi返回一个List类型的结果。
B:List query (String sql,PreparedStatementSetter pss,RowMapper rowMapper)会根据String类型参数提供的SQL语句创建PreparedStatement对象,通过RowMapper将结果返回到List中。
C:List query (String sql,Object[]args,RowMapperrowMapper)会将args参数绑定到SQL语句中,并通过RowMapperi返回一个Object类型的单行记录。
D:queryForList String sql,Object[]args,class<T>elementType)可以返回多行数据的结果,但必须是返回列表,element type参数返回的是List元素类型

CAAAC

简答题

请简述如何使用Juit对程序中的方法进行测试。

使用JUnt对程序中的方法进行测试时的步骤如下:
1、先创建一个普通测试方法,并在方法上添加单元测试的注解@Test;
2、添加@Tst注解后,在注解处会报错,将鼠标移动至@Test注解处,会弹出错误提示框,单击提示框中的Add JUnita4 library to the build path后,Eclipse会自动将JUnit44的支持包加入到项目中;
3、在执行程序时,只需使用鼠标右键单击测试方法,在弹出的快捷菜单中选择Run As中的JUnit Test选项来运行测试方法即可。

请简述Spring JDBC是如何进⾏配置的。

1、在Spring的配置⽂件中配置JDBC时,需要定义 了三个Bean,分别是dataSource、jdbcTemplate和需要 注⼊类的 Bean 。在定义 jdbcTemplate 时,需要将 dataSource注⼊到jdbcTemplate中,⽽其他需要使⽤ jdbcTemplate的Bean,也需要将jdbcTemplate注⼊到该 Bean中,这样配置完成后,Spring JDBC就可以使⽤ 了。

请简述Spring JdbcTemplate类中⼏个常⽤⽅法 的作⽤。

在JdbcTemplate类中,提供了⼤量的更新和查 询数据库的⽅法,我们就是使⽤的这些⽅法来操作数 据库的,其常⽤的⽅法包括execute()、update()和 query()。其中execute()⽅法能够完成执⾏SQL语句的 功能,update()⽅法可以完成插⼊、更新和删除数据 的操作,query()⽅法可以⽤来处理各种对数据库表的 查询操作。


第五章Spring的事务管理

填空题

1.使用基于注解方式的事务管理需要在使用事务的Spring Bean类或者Bean类的方法上添加注解【@Transactional】。
2.Spring的声明式事务管理可以通过两种方式来实现,一种是基于XL的方式,另一种是基于【Annotation】的方式。
3.Spring2.0以后,提供了tx命名空间来配置事务,x命名空间下提供了【<tx:advice>】元素来配置事务的通知(增强处理)
4.在Spring的所有JAR包中,包含一个名为【spring-tx.RELEASE.jar】的JAR包,该包就是Spring提供的用于事务管理的依赖包。
5.声明式事务管理:是通过【AOP】实现的事务管理。

判断题

1.基于XL方式的声明式事务管理是通过在配置文件中配置事务规则的相关声明来实现的。()
2.编程式事务管理是通过编写代码实现的事务管理,包括定义事务的开始、正常执行后的事务提交和异常时的事务回滚。()
3.Spring的事务管理简化了传统的事务管理流程,并且在一定程度上减少了开发者的工作量。()
4.Spring的声明式事务管理可以通过两种方式来实现一种是基于XML的方式,另一种是基于Annotation的方式。()
5.@Responsebody注解与@RequestMapping注解配合使角时,页面中将可以获取到方法的返回值。()

对对对对对

选择题

l.以下关于@Transactional注解可配置的参数信息及秒正确的是。()
A:value用于指定需要使用的事务管理器,默认为";
B:read-only用于指定事务是否只读,默认为true;
C:isolation用于指定事务的隔离级别,默认为Isolation.READ COMMITTED;
D:propagation,用于指定事务的传播行为,默认为Propagation.SUPPORTS;
2.以下基于XML方式的声明式事务管理配置文件中<tx:advice>元素的子元素<tx:method>属性描述错误的是。()
A:name:该属性为必选属性,它指定了与事务属性相关的方法名
B:propagation:用于指定事务的传播行为,它的默认值为SUPPORTS
C:isolation:该属性用于指定事务的隔离级别,其默认值为DEFAULT
D:read-only:该属性用于指定事务是否只读,其默认值为false
3.以下有关事务管理方式相关说法错误的是。()
A:Spring中的事务管理分为两种方式:一种是传统的编程式事务管理,另一种是声明式事务管理。
B:编程式事务管理:是通过AOP技术实现的事务管理,就是通过编写代码实现的事务管理,包括定义事务的开始、正常执行后的事务提交和异常时的事务回滚。
C:声明式事务管理:其主要思想是将事务管理作为一个“切面”代码单独编写,然后通过AOP技术将事务管理的“切面”代码植入到小业务目标类中。
D:声明式事务管理最大的优点在于开发者无需通过编程的方式来管理事务,只需在配置文件中进行相关的事务规则声明,就可以将事务规则应用到业务逻辑中。
4.以下有关Spring事务管理及核心接口说法错误的是。()
A:PlatformTransactionManager接口是Spring提供的平台事务管理器,主要用于管理事务。
B:TransactionDefinition接口是事务定义(描述)的对象,该对象中定义了事务规则,并提供了获取事务相关信息的方法。
C:TransactionStatus接口是事务的状态,它描述了某一时间点上事务的状态信息。
D:在事务管理过程中,传播行为可以控制是否需要创建事务以及如何创建事务,通常情况下,对于数据的查询、插入、更新和删除操作,必须进行事务管理。
5.下列选项中,哪一个不是Spring中事务管理的核心接口。()
A:PlatformTransactionManager
B:TransactionDefinition
C:TransactionStatus
D:TransactionManager

ABBDD

简答题

请列举PlatformTransactionManager接口提供了有哪些事务操作方法,并对这些方法分别进行简单说明。

PlatformTransactionManager接口中提供了三个事务操作方法,具体如下所示:
(1)TransactionStatusgetTransaction(TransactionDefinition definition):用于获取事务状态信息。
(2)void commit(TransactionStatus status):用于提交事务。
(3)void rollback(TransactionStatus status)):用于回滚事务。

请简述Spring中事务管理的两种⽅式。

Spring中的事务管理分为两种⽅式:⼀种是传 统的编程式事务管理,另⼀种是声明式事务管理。其 中,编程式事务管理是通过编写代码实现的事务管 理,包括定义事务的开始、正常执⾏后的事务提交和 异常时的事务回滚。声明式事务管理是通过AOP技术 实现的事务管理,其主要思想是将事务管理作为⼀个 “切⾯”代码单独编写,然后通过AOP技术将事务管理 的“切⾯”代码植⼊到业务⽬标类中。 声明式事务管理最⼤的优点在于开发者⽆需通过 编程的⽅式来管理事务,只需在配置⽂件中进⾏相关 的事务规则声明,就可以将事务规则应⽤到业务逻辑 中。这使得开发⼈员可以更加专注于核⼼业务逻辑代 码的编写,在⼀定程度上减少了⼯作量,提⾼了开发 效率。

请简述如何使⽤Annotation⽅式进⾏声明式事 务管理。

Spring的声明式事务管理通过Annotation(注解)方式来实现时,开发者只需做两件事情:
1)在Spring容器中注册事务注解驱动,其代码如下:<tx:annotation-driven transaction-manager="transactionManager"/>
2)在需要使用事务的Spring Bean类或者Bean类的方法上添加注解@Transactional。如果将注解添加在Bean类上,则表示事务的设置对整个Bean类的所有方法都起作用;如果将注解添加在Bean类中的某个方法上,则表示事务的设置只对该方法有效。


第六章初识MyBatis

填空题

1.yBatis的删除操作在映时文件中是通过配置【元素来实现的。
2.MyBatis映射文件中<mapper>元素是配置文件的根元素,它包含一个【】属性,该属性为这个
<mapper>指定了唯一的命名空间。
3.使用MySQL中的【】函数进行字符串拼接,可以有效防止模糊查询时可能出现的$QL注入问题。
4.ybatis-config.xml作为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,其中主要内容是获取【】。
5.【】是当前主流的Java持久层框架之一,它与Hibernate-一样,也是一种ORM框架。

1.<delete>2.namespace3.concat()4.数据库连接5.MyBatis

判断题

l.MyBatis映射文件中<mappers>元素是配置文件的根元素,它包含一个namespace属性,该属性为这个<mapper>指定了唯一的命名空间。()
2.使用MyBatis框架非常简单,只需在应用程序中引入MyBatis框架Iib目录中的全部JAR包以及数据库驱动包即可进行项目运行。()
3.ORM就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Jaa应用程序中的对象持久化到关系型数据库的表中。()
4.MyBatis的更新操作也需要进行事务提交。()
5.创建的映射文件中的$QL语句要以面向对象的写法进行书写。()

错错对对错

选择题

l.MyBatis的删除操作有关说发错误的是。()
A:MyBatis的删除操作在映射文件中是通过配置<delete>元素来实现的。
B:MyBatis的删除操作也需要进行事务提交。
C:MyBatis的删除操作执行了SqlSession的delete(方法。
D:MyBatis的删除操作和添加操作时,也需要封装整个实体类。
2.MyBatis的更新操作有关说发错误的是。()
A:yBatis的更新操作在映射文件中是通过配置
<update>元素来实现的。
B:MyBatis的更新操作也需要进行事务提交。
C:MyBatis的更新操作执行了SqlSession的updateO方法
D:MyBatis的更新操作和添加操作时,只需要将insert0(O方法改为updatO方法即可。
3.关于MyBatis模糊查询中进行SQL字符串拼接时,说法错误的是。()
A:使用“$}”进行SQL字符串拼接时,无法防止SQL注入问题。
B:可以使用MySQL中的concat()函数进行字符串拼接。
C:使用MySQL中的concat()函数进行字符串拼接,也无法防止SQL注入。
D:使用MySQL中的concat()函数进行字符串拼接,导致数据库移植性变差。
4.有关MyBatis工作原理说法错误的是。()
A:MyBatis的全局配置文件配置了MyBatis的运行环境等信息,其中主要内容是获取数据库连接
B:MyBatis映射文件中配置了操作数据库的SQL语句,需要在MyBatis的全局配置文件中加载才能执行
C:可以通过MyBatis的环境等配置信息构建会话对象SqlSession
D:SqlSession对象,该对象中包含了执行SQL的所有方法
5.使用ORM框架后,应用程序不再直接访问底层数据库,而是以()的方式来操作持久化对象(PO,即Persisent Object)。
A:面向业务B:Hibernate C:面向对象D:MyBatis
 

DDCCC

简答题

请简述Hibernate和MyBatis这两个框架的主要区别。
Hibernate是一个全表映射的框架。通常开发者只需定义好持久化对象到数据库表的映射关系,就可以通过Hibernate提供的方法完成持久层操作,开发者并不需要熟练的掌握$QL语句的编写,所以其开发效率会高于MyBatis。.而Hibernate自身也存在着一些缺点,例如它在多表关联时,对$QL查询的支持较差;更新数据时,需要发送所有字段;不支持存储过程;不能通过优化$QL来优化性能等。这些问题导致其只适合在场景不太复杂且对性能要求不高的项目中使用MyBatis是一个半自动映射的框架。这里所谓的“半自动”是相对于Hibernate全表映射而言的。与Hibernate相比,虽然使用MyBatis手动编写SQL要比使用Hibernate的工作量大,但yBatis可以配置动态SQL并优化SQL,可以通过配置决定$QL的映射规则,它还支持存储过程等对于一些复杂的和需要优化性能的项目来说,显然使用MyBatis更加合适

MyBatis框架的工作执行流程如下:
(1)读取MyBatis配置文件mybatis-.config.xml。
(2)加载映射文件Mapper.xml。
(3)构建会话工厂。
(4)创建SqlSession对象。
(5)使用Executor接口来操作数据库。
(6)使用MappedStatement类型的参数对映射信息
进行封装。
(7)输入参数映射。
(8)输出结果映射。


第七章mybatis的核心配置

填空题

1.当数据表中的列和需要返回的对象的属性不完全一致,MyBatis是不会自动赋值的。比时,就可以使用【】元素进行处理。
2.<resultMap>元素的子元素<id>用于表示哪个列是【】,而【】元素用于表示POO和数据表中普通列的映射关系。
3.MyBaits映射文件中使用<include>元素的【】属性可以引用自定义的代码片段,其属性值为自定义代码片段的id。
4.MyBatis映射文件中<insert>的<selectKey>子元素的order属性可以被设置为【】或【】。
5.对于数据源的配置,MyBatis框架提供了UNPOOLED、【】和JNDI三种数据源类型。

1.<resultMap>2.主键、<result>3.refid4.BEFORE、AFTER5.POOLED

判断题

l.<resultMap>的子元素<association>:和<collection>用于处理多表时的关联关系。()
2.MyBatis映射文件的<insert>元素的属性与<select>元素的属性大部分相同,但还包含了3个特有属性。()
3.MyBatis框架提供了许多默认别名,由于别名不区分大小写,所以在使用时要注意重复定义的覆盖问题。()
4.映射文件中可以包含多个id值相同的<resultMap>元素。()
5.与<insert>元素一样,<update>和<delete>元素在执行完之后,也会返回一个表示影响记录条数的整数。()

对对对错对

选择题

1.以下有关<sq>元素说法错误的是。()
A:<sq>元素的作用就是定义可重用的$QL代码片段,然后在其他语句中引用这一代码片段。
B:使用<include>元素的refid属性可以引用自定义的代码片段。
C:使用<include>元素refid的属性值为自定义代码片段的name。
D:<sql>元素是<mapper>元素的子元素。
2.以下有关MyBatis映射文件中<insert>元素说法正确的
是。()
A:<insert>元素用于映射插入语句,在执行完元素中定义的$QL语句后,没有返回结果。
B:<insert>元素的属性与<select>元素的属性相同。
C:keyColumn属性用于设置第几列是主键,当主键列不是表中的第一列时需要设置。
D:useGeneratedKeys(仅对insert有用)比属性会使MyBatist使用JDBC的getGeneratedKeys()方法来获取由数据库内部生产的主键。
3.以下关于<select>元素及其属性说法错误的是。()
A:<select>元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给业务开发人员。
B:parameterTypel属性表示传入SQL语句的参数类的全限定名或者别名。
C:resultMap:表示外部resultMap的命名引用,返回时可以同时使用resultType和resultMap
D:在同一个映射文件中可以配置多个<select>元素。
4.关于<typeHandlers>元素说法错误的是。()
A:<ypeHandler>元素就是用来在配置文件中注册自定义的类型处理器的,它的使用方式有两种
B:通过<typeHandlers>-元素的子元素<typeHandler>就可以配置单个类型处理器。
C:通过<typeHandlers>元素的子元素<package>可以配置包下的所有类型处理器。
D:<typeHandlers>元素的子元素<package>的handler属性用于指定类型处理器所在的包名,系统会在启动时自动的扫描com.itheima.type包下所有的文件,并把它们作为类型处理器。
5.有关MyBatis配置文件中<settings>元素的说法错误的是。()
A:<settings>元素主要用于改变MyBatis运行时的行为,例如开启二级缓存、开启延迟加载等。
B:虽然不配置<settings>元素,也可以正常运行MyBatis,但是熟悉<settings>的配置内容以及它们的作用还是十分必要的。
C:<settings>元素中延迟加载的全局开关的参数lazyLoadingEnabled默认开启。
D:<settings>元素的配置内容大多数都不需要开发人员去配置它,通常在需要时只配置少数几项即可。

CCCDC

简答题

请简述<sq>元素的作用及使用。

<sq>元素的作用就是定义可重用的SQL代码片段。使用时,先通过<$q>元素定义重用的代码片段,然后在需要使用的地方使用<include>元素的refid属性引用了自定义的代码片段。

请简述MyBatis核⼼对象SqlSessionFactory的获 取⽅式。

1、SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象来构建,而
SqlSessionFactoryBuilder.则可以通过XML配置文件或一个预先定义好的Configuration实例构建出SqlSessionFactory的实例,通过XML配置文件构建出的SqlSessionFactory?实例,其实现代码如下://谈取配置文件InputStream inputStream=Resources,getResourceAsStream("配置文件位置")://根据配置文件构建SqlSessionFactorySqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder ().build(inputStream);

请简述MyBatis映射⽂件中的主要元素及其作 ⽤。


第八章动态SQL

填空题

1.当在MyBaits文件中使用了<bind>元素,在SQL语句中可以直接引用<bind>元素的【】属性值即可进行动态SQL组装。
2.在使用MyBaits的<foreach:>时,如果传入的参数是多个的时候,就需要把它们封装成一个Map了,这时候collection.属性值就为Map的【】。
3.在MyBaits映射文件中使用<set>和<if元素组合进行update语句动态SQL组装时,如果<set>元素内包含的内容都为空,则会出现【】。
4.MyBaits中<trim>元素的作用是去除一些特殊的字符串,它的【】属性代表的是语句的前缀,而
prefixOverrides,属性代表的是需要去除的哪些特殊字符串。
5.使用<set>和<if>元素相结合的方式来组装update语句时,<s>元素就会动态前置【】关键字,同时也会消除$QL语句中最后一个多余的【】

1.name2.键3.SQL语法错误4.prefix5.SET、逗号

判断题

1.可以将任何可迭代对象(如列表、集合等)和任何的字典或者数组对象传递给<foreach>作为集合参数。()
2.在MyBaits映射文件中使用<set>和<ifP元素组合进行update语句动态SQL组装时,如果<set>元素内包含的内容都为空,则会出现$QL语法错误。()
3.yBaits中对原始SQL中的“where1=1"的条件可以使用<where>与<if元素组合进行替换。()
4.在MyBatis中<iB元素用于单条件分支判断,当某个<if的test属性判断成立,然后跳过其他<ifP元素进行动态SQL组装。()
5.yBatis中的<foreach>元素可以用于对数组和集合循环遍历,批量执行SQL操作。()

对对对错对

选择题

1.以下不属于<foreach>:元素中使用的属性的是。()
A:separator
B:collection
C:current
D:item
2.以下关于<foreach>元素中使用的几种属性的描述错误的是。()
A:item:配置的是循环中当前的元素。
B:index:配置的是当前元素在集合的位置下标。
C:collection:配置的是传递过来的参数类型,它可以是一个aray、list(或collection)、Map集合的键、P0O包装类中数组或集合类型的属性名等。
D:separator:配置的是各个元素的间隔符。
3.以下关于MyBatis的<set>元素的使用及说法正确的是。()
A:<set>元素主要用于更新操作,其主要作用是在动态包含的SQL语句前输出一个SET关键字,并将sQL语句中最后一个多余的逗号去除。
B:使用MyBatis的<set>元素来更新操作时,前端需要传入所有参数字段,否则未传入字段会默认设置为空
C:在映射文件中使用<set>和<if>元素组合进行update语句动态SQL组装时,<set>元素内包含的内容可以都为空,<if都元素会进行判断处理。
D:在映射文件进行更新操作时,只需要使用<set>元素就可以进行动态SQL组装。
4.以下有关yBatis动态SQL中的主要元素说法错误的是。()
A:<if>用于单条件分支判断。
B:<choose>(<when>、<otherwise>)用于多条件分支判断。
C:<foreach>循环语句,常用于in语句等列举条件中。
D:<bind>从OGNL表达式中创建一个变量,并将其绑定到上下文,只于模糊查询的sq中。
5.当有多个选择的情况是,值需要从多个选项中选择一个去执行时,可以使用的动态$QL元素是()
A:<if>
B:<choose>、<when>、<otherwise>
C:<when>
D:<set>

CCADB        

简答题

MyBatisz动态SQL中的主要元素及说明如下:
<if:判断语句,用于单条件分支判断;<choose><when>、<otherwise>:相当于Java中的
switch..case.default语句,用于多条件分支判断;
<where>、<trim>、<set>:辅助元素,用于处理一些SQL拼装、特殊字符问题;
<foreach>::循环语句,常用于in语句等列举条件中;
<bind>:从OGNL表达式中创建一个变量,并将其绑定到上下文,常用于模糊查询的sq中。

请简述MyBatis框架动态SQL中元素 collection属性的注意事项。

2、在使用<foreach>时,collection.属性是必须指定的,而且在不同情况下,该属性的值是不一样的。主要有以下3种情况:
(1)如果传入的是单参数且参数类型是一个数组或者List的时候,collection属性值分别为array和list(或collection);
(2)如果传入的参数是多个的时候,就需要把它们封装成一个Map了,当然单参数也可以封装成Map集合,这时候collection/属性值就为Map的键。
(3)如果传入的参数是POJO包装类的时候collection属性值就为该包装类中需要进行遍历的数组或集合的属性名。所以在设置collection.属性值的时候,必须按照实际情况配置,否则程序就会出现异常。。


第九章mybatis的关联映射

填空题

1.MyBatis是通过resultMap>元素的【】子元素该元素来处理多对多关联关系的。
2.MyBatis是通过resultMap>元素的【】子元素该元素来处理一对一关联关系的。
3在关系型数据库中,多对多关系会产生【】表,引入两张表的主键作为外键,两个主键成为联合主键或使用新的字段作为主键。
4.在关系型数据库中,一对一可以在【】引入对方主键作为外键。
5.<collection>:子元素的ofType属性与javaType属性对应,它用于指定实体对象中集合类属性所包含的【】

1.<collection>2.<association>3.中间关系4.任意一方5.元素类型

判断题

l.MyBatis是同样是通过<resultMap>元素的<collection子元素该元素来处理多对多关联关系的。()
2.MyBatis在映射文件中加载关联关系对象主要通过两种方式:嵌套查询和嵌套结果。()
3.在关系型数据库中,一对多就是在“一的一方,添加“多”的一方的主键作为外键。()
4.MyBatis中<collection>元素的属性与<association>元素相同,且使用也很简单,同样有嵌套查询和嵌套结果两种关联方式。()
5.MyBatis是通过<resultMap>:元素的<association>子元素该元素来处理一对一关联关系的。()

对对错错对

选择题

l.以下关于MyBatis映射文件中<association>元素属性的说明错误的是。()
A:property:指定映射到的实体类对象属性,与表字段一一对应。
B:column:指定表中对应的字段。
C:javaType:指定映射到实体对象属性的类型。
D:fetchType:指定在关联查询时是否启用延迟加载。fetchType属性有lazy和eager两个属性值,默认值为eager。
2.下面关于数据库中多表之间关联关系说法错误的是。()
A:一对一关联关系可以在任意一方引入对方主键作为外键。
B:一对多关联关系在“一”的一方,添加“多”的一方的主键作为外键。
C:多对多关联关系会产生中间关系表,引入两张表的主键作为外键。
D:多对多关联关系的两个表的主键成可以为联合主键或使用新的字段作为主键。
3.下面关于Java对象之间的关联关系描述正确的是。(
A:一对一的关系就是在本类和对方类中定义同一个类型的对象。
B:一对多的关系就是一个A类类型对应多个B类类型的情况。
C:多对多的关系只需要在一方的类中引入另一方类型的集合。
D:多对多关联关系需要在本类中引入本类的集合。
4.下面属性中不属于<association>元素属性的是。()
A:property
B:column
C:ofType
D:javaType
5.下面关于<collection>元素的描述正确的是。()
A:MyBatis就是通过<collection>元素来处理一对多关联关系的。
B:<collection>:元素的属性与<association>元素完全相同。
C:ofType属性与javaTypel属性对应,它用于指定实体对象中所有属性所包含的元素类型。
D:<collection>元素只能使用嵌套查询方式。

DBBCA

简答题

请简要说明yBatis在映射文件中加载关联关系对象的方式。

MyBatis在映射⽂件中加载关联关系对象主要通过两种 ⽅式:嵌套查询和嵌套结果。嵌套查询是指通过执⾏另外 ⼀条SQL映射语句来返回预期的复杂类型;嵌套结果是使 ⽤嵌套结果映射来处理重复的联合结果的⼦集。

请简述不同对象之间的三种关联关系。

在java中,对象之间存在着三种关联关系,分 别是⼀对⼀,⼀对多和多对多。在这三种关联关系 中,⼀对⼀的关系就是在本类中定义对⽅类型的对 象,如A类中定义B类类型的属性b,B类中定义A类 类型的属性a;⼀对多的关系就是⼀个A类类型对应 多个B类类型的情况,需要在A类中以集合的⽅式引 ⼊B类类型的对象,在B类中定义A类类型的属性a; 多对多的关系就是在A类中定义B类类型的集合,在B 类中定义A类类型的集合。

请简述MyBatis关联查询映射的两种处理⽅ 式。

MyBatis在映射⽂件中加载关联关系对象主要 通过两种⽅式:嵌套查询和嵌套结果。嵌套查询是指 通过执⾏另外⼀条SQL映射语句来返回预期的复杂类 型;嵌套结果是使⽤嵌套结果映射来处理重复的联合 结果的⼦集。开发⼈员可以使⽤上述任意⼀种⽅式实 现对关联关系的加载。


第十章 MyBatis与Spring的整合

填空题

1.在MyBatis+Spring的项目中,事务是由【】来管理的。
2.yBatis-Spring团队提供了一种自动扫描的形式来配置MyBatist中的映射器一采用【】类。
3.【】是MyBatis-Spring团队提供的一个用于根据Mapper接口生成Mapper对象的类。
4.SqlSessionDaoSupport是一个抽象支持类,可以通过SqlSessionDaoSupport类的【】方法来获取所需的SqlSession.
5.在进行Spring-与MyBatis整合时,Spring框架所需要准备的JAR包共10个,其中包括:4个核心模块JAR,AOP开发使用的JAR,【】和事务的JAR。

1.Spring2.MapperScannerConfigurer3.MapperFactoryBean4.getSqlSession()5.JDBC

判断题

1.MapperFactoryBean的参数SqlSessionTemplate用于指定SqlSessionTemplate。.如果与SqlSessionFactory同时设定,则只会启用SqlSessionFactory。()
2.MyBaits与Spring进行整合时,Dao层开发可以使用传统的DAO方式的开发整合,以及Mapper接口方式的开发整合。()
3.可以使用mybatis--spring包中所提供的SqlSessionTemplate类或SqlSessionDaoSupport类来实
现向DAO实现类中注入SqlSessionFactory。()
4.在实际的项目开发中,Spring与MyBatis都是整合在一起使用的。()
5.MapperFactoryBean是MyBatis-Spring团队提供的一个用于根据Mapper接口生成Mapper对象的类。()

错对对对对

选择题

l.MapperFactoryBean是MyBatis-Spring团队提供的用于根据Mapper接口生成MapperX对象的类,该类在Spring配置文件中可以配置的参数不包括。()
A:mapperInterface
B:SqlSessionFactory
C:SqlSessionTemplate
D:basePackage
2.MapperScannerConfigurer类在Spring配置文件中使用时,可以配置的属性及说明错误的是。()
A:basePackage:指定映射接口文件所在的包路径当需要扫描多个包时可以使用分号或逗号作为分隔
B:annotationClass:指定了要扫描的注解名称,只有被注解标识的类才会被配置为映射器。
C:sqlSessionFactoryBeanName:指定在Spring中定义的SqlSessionFactoryl的Bean名称。
D:sqlSessionTemplateBeanName:指定在Spring中定义的SqlSessionTemplate的Bean名称。如果定义此属性,则sqlSessionFactoryBeanName将起作用
3.在MyBatis-+Spring的项目中,以下有关事务的相关说法正确的是。()
A:在MyBatis-+Spring的项目中,事务是由yBatis来管理的。
B:在项目中,数据访问层既是处理业务的地方,又是管理数据库事务的地方。
C:进行注解开发时,需要在配置文件中配置事务管理器并开启事务注解。
D:进行注解开发时,需要使用@Transactional注解来标识表现层中的类。
4.以下不属于MapperScannerConfigurer类,在Spring配置文件中使用时需要配置的属性的是。()
A:basePackage
B:annotationClass
C:sqlSessionFactoryBeanName
D:mapperInterface
5.以下有关采用传统DAO开发方式进行MyBatis与Spring框架的整合的说法错误的是。()
A:采用传统DAO开发方式进行MyBatis与Spring框架的整合时,只需要编写DAO接口。
B:采用传统DAO开发方式进行MyBatis与Spring框架的整合时,需要向DAO实现类中注入SqlSessionFactory,然后在方法体内通过SqlSessionFactory创建SqlSession..
C:可以使用mybatis-spring包中所提供的SqlSessionTemplate类或SqlSessionDaoSupport类来实现在类中注入SqlSessionFactory。
D:SqlSessionDaoSupport是一个抽象支持类,它继承了DaoSupport类,主要是作为DAO的基类来使用。可以通过SqlSessionDaoSupport类的getSqlSession()2方法来获取所需的SqlSession。

DDCDA

简答题

请 对 mybatis-spring 包中所提供的两个类 SqlSessionTemplate和SqlSessionDaoSupport进简要介 绍。

SqlSessionTemplate是mybatis-spring的核⼼类,它负责 管理MyBatis的SqlSession,调⽤MyBatis的SQL⽅法,当 调⽤SQL⽅法时,SqlSessionTemplate将会保证使⽤的 SqlSession 和当前 Spring 的事务是相关的; SqlSessionDaoSupport 是⼀个抽象⽀持类,它继承了 DaoSupport类,主要是作为DAO的基类来使⽤。


第十一章Spring MVC⼊⻔

填空题

1.前端控制器拦截请求后,会调用【】。
2.Spring MVC支持多种视图技术,包括【】、Velocity和FreeMarker等。
3.Spring MVC的配置文件中,可以配置处理器映射、处理器映射器、处理器适配器和【】。
4.Spring MVC提供了一个前端控制器【】,使开发人员无需额外开发控制器对象。
5.在Spring MVC的执行流程中,Controller执行完成后,会返回一个【】对象。

1.HandlerMapping2.JSP3.视图解析器4.DispatcherServlet5.ModelAndView

判断题

l,HandlerAdapter将ModelAndView对象返回给ViewReslover。()
2.Spring4.3版本的配置文件中,必须要配置处理器映射器、处理器适配器和视图解析器,否则程序将无法运行。()
3.<load-on-startup>元素中的1表示容器在启动时立即加载这个Servlet。()
4.Spring MVC支特JSP、Velocity、XML和FreeMarker等视图技术。()
5.Spring MVC的灵活性比较弱,易于与其他框架集成。()
 

错错对错错

选择题

1.下面关于Spring MVC特点说法错误的是。()
A:灵活性强,但不易于与其他框架集成
B:可自动绑定用户输入,并能正确的转换数据类型
C:支持国际化
D:使用基于XML的配置文件,在编辑后,不需要重
新编译应用程序
2.Spring MVC中的后端控制器是指。()
A:HandlerAdapter
B:DispatcherServlet
C:ViewReslover
D:Handler
3.用户通过浏览器向服务器发送请求时,负责拦截用户
请求的是。
()
A:处理器
B:处理器映射器
C:处理器适配器
D:前端控制器
4.入门程序中,不是必须引入的JAR包是。()
A:Spring的4个核心JAR包
B:commons--logging的JAR包
C:spring-web和spring-webmvcl的JAR包
D:log4j的JAR
5.Spring MVC是Spring提供的一个实现了()设计模
式的轻量级Web框架。
A:Web MVC
B:Web
C:单例
D:工厂

ADDDA

简答题

请简述Spring MVC的特点。

1.是Spring框架的⼀部分,可以⽅便的利⽤Spring所提 供的其他功能。 2.灵活性强,易于与其他框架集成。 3.提供了⼀个前端控制器DispatcherServlet,使开发⼈员 ⽆需额外开发控制器对象。 4.可⾃动绑定⽤户输⼊,并能正确的转换数据类型。 5.内置了常⻅的校验器,可以校验⽤户输⼊。如果校验 不能通过,那么就会重定向到输⼊表单。 6.⽀持国际化。可以根据⽤户区域显示多国语⾔。

请简述Spring MVC框架的⼯作执⾏流程。


第十二章Spring MVC的核心类和注解

填空题

1.RequestMapping注解类型用于映射【】。
2.在使用Spring MVC的注解开发时,除了需要引入Spring的核心JAR包、Commons-logging的JAR包以及Spring MVC的2个JAR包外,还需要引入【】的JAR包。
3.在视图解析器配置中,可以设置视图的【】。
4.如果没有通过<init-param>元素配置,则应用程序会默认去【】寻找配置文件。
5.如果<load-on-startup>元素不存在,则应用程序会【】加载该Servlet。

1.一个请求或一个方法2.Spring AOP3.前缀和后缀4.WEB-INF目录下5.在第一个Servleti请求时

判断题

1.在控制器类中,每一个请求处理方法都可以有多个不同类型的参数,以及一个多种类型的返回结果。()
2.@RequestMapping的method)属性必须使用。()
3.@RequestMapping(method RequestMethod.GET)以缩写为@GetMapping。()
4.@RequestMapping注解的属性都是可选属性。()
5.Web.xml文件中必须使用<load-on-startup>元素和<init-param>元素,否则文件会报错。()

对错对对错

选择题

1.下面关于请求处理方法返回类型说法错误的是。(
)
A:常见的返回类型是ModelAndView、String和void
B:ModelAndView类型中可以添加Model数据,并指定视图:String类型的返回值可以跳转视图,但不能携带数据
C:String类型的返回值可以跳转视图,但不能携带数据
D:void类型主要在异步请求时使用,它既返回数据,又跳转视图
2.下面类型中,不属于请求处理方法参数类型的是。(
A:javax.servlet.http.HttpSession
B:@Matrix Variable
C:org.springframework.ui.Model
D:void
3.下面关于组合注解的说法正确的是。()
A:组合注解是Spring3.x版本中的新特性
B:组合注解可以简化常用的HTTP方法的映射
C:在所有的Spring项目中,使用组合注解可以替代@RequestMapping注解
D:@GetMapping注解可以用来匹配GET和POST方式的请求
4.下面关于@RequestMapping注解说法错误的是。(
A:@RequestMapping注解的默认属性是value
B:@RequestMapping注解的value属性值可以省略
C:@RequestMapping注解的value属性名可以省略
D:@RequestMapping注解的value属性必须标注
5.下面关于<oad-on-startup>元素说法错误的是。()
A:如果<load-on-startup>元素的值为1,则在应用程序启动时会立即加载该Servlet
B:如果<load-on-startup>元素不存在,则应用程序会在第一个Servleti请求时加载该Servlet
C:如果<load-on-startup>元素的值为1,则在应用程序启动时会延迟加载该Servlet
D:<load-on-startup>元素是可选的

DDBDC

简答题

请简述ModelAndView、String和void三种返回类型的 作⽤。

ModelAndView类型中可以添加Model数据,并指定视 图;String类型的返回值可以跳转视图,但不能携带数 据;⽽void类型主要在异步请求时使⽤,它只返回数据, ⽽不会跳转视图。

、请简述@Controller注解的使⽤步骤。

1、@Controller注解在使⽤时可分为如下两步:

(1)在相应的类上标注@Controller注解。 (2)在Spring MVC的配置⽂件中添加相应的扫描 配置信息。⾸先需要在配置⽂件中引⼊context名称空 间的配置,然后使⽤元素指 定需要扫描的类包。

2、请列举请求处理⽅法的参数类型和返回类型 (⾄少5个)。

请求处理⽅法的参数类型主要有: HttpServletRequest 、 HttpServletResponse 、 HttpSession、Model、HttpMethod等; 请求处理⽅法的返回类型主要有: ModelAndView、Map、String、void、HttpEntity、View等。


第十三章数据绑定

填空题

1.在使用集合数据绑定时,后台方法中不支持直接使用集合形参进行数据绑定,所以需要使用包装POJO作为形参,然后在包装POJO中包装一个【】属性。
2.使用包装POJO类型数据绑定时,如果前端条件参数是包装类中POJO的子属性,则参数名必须为【】。
3.当前端请求的参数比较简单时,可以在后台方法的形参中直接使用Spring MVC:提供的【】类型进行数据绑定。
4.如果将订单和用户的所有查询条件都封装在一个简单POO中,显然会比较混乱,这时就可以考虑使用【】类型的数据绑定。
5.在使用POJO类型数据绑定时,前端请求的参数名必须与要绑定的POO类中的【】一样,这样才会自动将请求数据绑定到POO对象中,否则后台接收的参数值为【】。

1.集合2.对象.属性3.默认参数4.包装P0J05.属性名

判断题

1.绑定数组与绑定集合页面传递的参数相同,只是后台接收方法的参数不同。()
2.要使用集合数据绑定,需要在包装类中定义一个包含用户信息类的集合,然后在接收方法中将参数类型定义为该包装类的集合。()
3.在执行绑定数组操作中,前台页面中复选框中传递的name属性值必须相同。()
4.注册自定义的Formatter转换器类时,Bean的类名必须为org.springframework.format.support.FormattingConversionServiceFactoryBean,并且其属性为formatters。()
5.Formatter与Converter的作用相同,只是Formatterl的源类型可以是任意类型,而Converter必须是一个String类型。()

错对对对错

选择题

1.以下有关Spring MVC数据绑定中集合数据绑定的说
法正确的是。()
A批量删除用户操作时,前端请求传递过来的参数就会包含多个相同类型的数据,此比时可以采用数组类型数据绑定的形式
B:使用集合数据绑定需要后台方法中定义一个集合类型参数介绍绑定前端请求参数
C:绑定数组与绑定集合页面传递的参数相同,只是后台接收方法的参数不同
D:在使用集合数据绑定时,后台方法中不支持直接使用集合形参进行数据绑定
2.下面选项中,哪一个是Spring的编码过滤器类。(
A:org.springframework.web.filter.EncodingFilter
Borg.springframework.web.filter.CharacterEncodingFilter
C:org.springframework.web.filter.CharacterEncoding
D:org.springframework.web.filter.CharacterFilter
3.@RequestParam注解中可以省略属性名称的是。(
A:defaultValue
B:value
C:name
D:required
4.下面关于包装POJO类型数据绑定的说法正确的是。()
A:如果查询条件参数是包装类的直接基本属性,则参数名直接用对应的属性名
B:如果查询条件参数是包装类的直接基本属性,则参数名必须使用对应的“对象属性名”
C:如果查询条件参数是包装类中POJO的子属性,则参数名必须为属性名
D:如果查询条件参数是包装类中POO的子属性,则参数名必须为“对象.子属性.属性值的形式
5.下面不属于@RequestParam注解类型属性的是。(
A:id
B:value
C:name
D:required

DBBAA

简答题

为什么需要⾃定义数据绑定?

⼀般情况下,使⽤基本数据类型和POJO类型的参数数 据已经能够满⾜需求,然⽽有些特殊类型的参数是⽆法在 后台进⾏直接转换的,例如⽇期数据就需要开发者⾃定义 转换器(Converter)或格式化(Formatter)来进⾏数据绑 。

请简述简单数据类型中的@RequestParam注解 及其属性作⽤。

请简述包装POJO类型绑定时的注意事项。

2、在使用包装POJO类型数据绑定时,前端请求的参数名编写必须符合以下两种情况:
(1)如果查询条件参数是包装类的直接基本属性,则参数名直接用对应的属性名,如上面代码中的ordersId;
(2)如果查询条件参数是包装类中POO的子属性,则参数名必须为“对象属性”,其中“对象要和包装POJ0中的对象属性名称一致,“属性”要和包装POJO中的对象子属性一致。


第十四章JSON数据绑定和RESTful⽀持

填空题

1.RESTful,风格在HTTP请求中,使用【】、delete、post和gt方式分别对应添加、删除、修改和查询的操作。
2.使用<bean>标签配置方式配置JSON转换器时,需要同时配置处理器映射器和处理器适配器,并且JSON转换器是配置在【】中。
3.JSON对象的数组结构以“P开始,以结束,中间部分由【】以英文“,”分隔的值的列表组成。
4.@Path Variable注解用于接收并绑定请求参数,它可以将请求URL中的【】到方法的形参上。
5.RESTful)风格在HTTP请求中,不能够出现【】

1.put 2.适配器3. 0个或多个 4.变量映射 5.动词

判断题

l.@Path Variable("id")注解用于接收并绑定请求参数,如果请求路径中的参数名方法形参名称一样,则@Path Variable/后面的“(id")'可以省略。()
2.JSON对象数据结构的关键字(key)必须为String类型,值(value)可以是String、Number、Object、Aray等数据类型。()
3.RESTful,风格在HTTP请求中,使用put、delete、post和gt方式分别对应添加、删除、修改和查询的操作。()
4.RESTful也称之为REST,是英文“RepresentationalState Transfer''的简称。()
5.MappingJackson2 HttpMessageConverter类只能将Java对象转换为JSON对象和XML文档,不能将JSON对象和XML文档转换为Java对象。()

对对对对错

选择题

1.针对GET方式RESTful风格的请求http://localhost:8080/chapter14/user/1,后台方法接收参数的路径映射写法可行的是。()
A:@RequestMapping(&quot;/user/{id;&quot;,method=RequestMethod.GET).
B:@RequestMapping(value="/user/ids").
C:@GetMapping(value="/user/{ids)").
D:@GetMapping(value="/user/fid)",method=RequestMethod.GET)
2.下面属于RESTful风格请求的是。()
A:http://.../queryItems?id=1
B:http://.../queryItems?id=1&amp;name=zhangsan
C:http:/∥../items/1
D:http://.../queryitems/1
3.下面不属于AJAX中的属性的是。()
A:data
B:contentType
C:dataType
D:database
4.下面选项中不属于Jackson的开源包的是。()
A:jackson-annoations-2.8.8.jar
B:jackson-core-2.8.8.jar
C:jackson-databind-2.8.8.jar
D:jackson-data-2.8.8.jar
5.JSON对象结构中,关键字key必须为。()类型
A:Object
B:Array
C:String
D:Number

CCDDC

简答题

请简述Spring中HttpMessageConverter<T>接⼝的主要 作⽤。

为了实现浏览器与控制器类(Controller)之间的数据 交互,Spring提供了⼀个HttpMessageConverter接⼝来 完成此项⼯作。该接⼝主要⽤于将请求信息中的数据转换 为⼀个类型为T的对象,并将类型为T的对象绑定到请求 ⽅法的参数中,或者将对象转换为响应信息传递给浏览器 显示。


第十五章SSM框架集合

填空题

1.SSM框架整合主要是【】的整合,以及【】的整合。
2.为了避免Spring配置文件中的信息过于臃肿,通常会将Spig配置文件中的信息按照【】分散在多个配置文件中。
3.@Transactional注解主要是针对数据的【】、【】、【】进行事务管理。
4.在整合项目中,db.properties文件主要用于【】。
5.Spring与MyBatis框架的整合时,可以通过Spring【】,然后调用实例对象中的查询方法来执行MyBatis映射文件中的【】,如果能够正确查询出数据库中的数据,就可以认为Spring-与MyBatis框架整合成功。

l.Spring.与MyBatis、Spring MVC与My Batis2.不同的功能3.增加、修改、删除4.配置数据库常量5.实例化Bean、SQL语句

判断题

1.在实际开发时,为了避免Spring配置文件中的信息过于臃肿,通常会将Spring配置文件中的信息按照不同的功能分散在多个配置文件中。()
2.@Autowired:注解需要标注在Service层的实现类上,这样才能实现依赖注入。()
3.@Transactional注解主要是针对数据的增加、修改、删除和查询进行事务管理。()
4.Spring与Spring MVC,Spring MVC与MyBatis需要相互整合。()
5.在Spring MVC的配置文件中,视图解析器是必须配置的。()

对错错错错

选择题

1.下列选项中,不需要配置在web.xml中的是。()
A:Spring的监听器
B:编码过滤器
C:视图解析器
D:前端控制器
2.下列选项中,属于Spring MVC所必须的JAR包的是。()
A:spring-web-4.3.6.RELEASE.jar
B:spring-webmvc-portlet-4.3.6.RELEASE.jar
C:spring-webmvc-4.3.6.RELEASE-javadoc.jar
D:spring-websocket-4.3.6.RELEASE.jar
3.下列选项中,不属于SSM整合时所需的JAR包的是。()
A:spring-web-4.3.6.RELEASE.jar
B:spring-webmvc-4.3.6.RELEASE.jar
C:ant-1.9.6.jar
D:xwork-core-2.3.24.jar
4.下列关于SSM框架的整合说法错误的是。()
A:Spring MVC.与Spring之间不存在整合的问题。
B:SSM框架的整合就涉及到Spring与MyBatis的整合。
C:SSM框架的整合就涉及到Spring MVC.与MyBatis的整合。
D:SSM框架的整合就涉及到Spring MVC与Spring,之间的整合。
5.下面选项中,不属于整合SSM框架所编写的配置文件的是。()
A:db.properties
B:applicationContext.xml
C:mybatis-config.xml
D:struts.xml

CADDD

简答题

请简述SSM框架整合思路。

由于Spring MVC是Spring框架中的⼀个模块,所以 Spring MVC与Spring之间不存在整合的问题,只要引⼊相 应JAR包就可以直接使⽤。因此SSM框架的整合就只涉及 到了Spring与MyBatis的整合,以及Spring MVC与MyBatis 的整合。Spring与MyBatis框架的整合时,通过Spring实例 化Bean,然后调⽤实例对象中的查询⽅法来执⾏MyBatis 映射⽂件中的SQL语句的,如果能够正确查询出数据库中 的数据,那么就可以认为Spring与MyBatis框架整合成功。 加⼊Spring MVC后,如果可以通过前台⻚⾯来执⾏查询 ⽅法,并且查询出的数据能够在⻚⾯中正确显示,那么就 可以认为三⼤框架整合成功。

请简述SSM框架整合时,Spring配置⽂件中的 配置信息。
主要包括:
(1)读取数据库常量配置文件db.properties的配置信息;
(2)数据源的配置信息;
(3)事务管理器的配置信息;
(4)开启事务注解的配置;
(5)MyBatis.工厂SqlSessionFactoryl的配置信息;
(6)mapper文件扫描器的配置;
(7)扫描Service层的配置。

整理的手快断了。。。。

如果有错误的话大家多包涵,可以评论区告我哦!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村口下棋刘师傅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值