ssm框架题库java

上传人:仙*** 文档编号:68451960 上传时间:2022-04-02 格式:DOC 页数:30 大小:333.50KB
收藏 版权申诉 举报 下载
ssm框架题库java_第1页
第1页 / 共30页
ssm框架题库java_第2页
第2页 / 共30页
ssm框架题库java_第3页
第3页 / 共30页
资源描述:

《ssm框架题库java》由会员分享,可在线阅读,更多相关《ssm框架题库java(30页珍藏版)》请在装配图网上搜索。

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

2、ring 开发所需的 JAR 包分为两个部分: 【】和【】。二、判断题1. Spring 中基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。( )2. 通 常 在 Java 项 目 中 , 会 采 用 通 过 FileSystemXmlApplicationContext 类 来 实 例 化ApplicationContext 容器的方式。 ()3. 初学者学习 Spring 框架时,只需将 Spring 的 4 个基础包以及 commons-logging.jar 复制到项目的 lib 目录,并发布到类路径中即可。 ()4. 依赖注入的作用就是在使用 Sprin

3、g 框架创建对象时,动态的将其所依赖的对象注入到 Bean 组件中。( )5. Spring 框架采用的是分层架构,它一系列的功能要素被分成 20 个模块。( )三、选择题1. 以下关于 Spring 核心容器相关说法错误的是。 ()A: Spring 框架的所有功能都是通过其核心容器来实现的。B: 创建 BeanFactory 实例时,需要提供 Spring 所管理容器的详细配置信息,这些信息通常 采用 XML 文件形式来管理。C: ApplicationContext 不仅包含了 BeanFactory 的所有功能,还添加了对国际化、资源访问、 事件传播等方面的支持。D: 通 常 在 Ja

4、va 项 目 中 , 会 采 用 通 过 ClassPathXmlApplicationContext 类 来 实 例 化 ApplicationContext 容器的方式,而在 Web 项目中, ApplicationContext 容器的实例化工作会 交由 Web 服务器来完成。2. 以下有关 Spring 的四个基础包说法正确的是。 ()A: Spring 的四个基础包,它们分别对应 Spring Web 容器的四个模块。B: Spring 的 四 个 基 础 包 有 spring-core.RELEASE.jar 、 spring-beans-.RELEASE.jar 、 spring

5、-context- .RELEASE.jar 和 spring-aop-.RELEASE.jar 。C: spring -context-.RELEASE.jar 是所有应用都要用到的 JAR 包,它包含访问配置文件以及进 行 IoC 或者 DI 操作相关的所有类。D: spring-core.RELEASE.jar 包含 Spring 框架基本的核心工具类, Spring 其它组件都要用到 这个包里的类,是其它组件的基本核心。3. 以下有关 Spring 框架优点的说法正确的是。 ( )A: Spring 具有简单、 可测试和松耦合等特点, 从这个角度出发, Spring 就是应用于任何 J

6、ava 应用的开发中;B: Spring 提供了对 AOP 的支持,它允许将一些通用任务,如安全、事务、日志等进行集中 式处理,从而提高了程序的复用性C: Spring 就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给 Spring 容 器管理,杜绝了组件之间的耦合性D: Spring 增加了 Java EE 开发中一些 API 的使用难度4. Spring 的核心容器是其他模块建立的基础,以下哪个不是该容器的组成模块。 ( )A: Beans 模块B: Core 模块C: Context 模块D: AOP 模块5. 下列选项中,不属于 Spring 框架优点的是。 ( )A:

7、提供强大的、可以有效减少页面代码的标签B: 声明式事务的支持。C: 方便解耦、简化开发D: 方便集成各种优秀框架四、简答题1. Spring 依赖注入通常有哪些实现方式,列举并分别进行说明。答案一、填空题1. Bean2. Spring 容器3. commons -logging4. 生命周期5. Spring 框架包、第三方依赖包二、判断题1. 对2. 错3. 对4. 对5. 对三、选择题1. A2. D3. B4. D5. A四、简答题Spring 的实现方式通常有两种, 一种是属性 setter 方法注入, 另一种是构造方法注入。 属性 setter 方法注入是指 IoC 容器使用 se

8、tter 方法来注入被依赖的实例。 通过调用无参构造器或无参静态工厂方 法实例化Bean后,调用该Bean的setter方法,即可实现基于 setter方法的依赖注入。构造方法注入 是指 IoC 容器使用构造方法来注入被依赖的实例。基于构造方法的依赖注入通过调用带参数的构造 方法来实现,每个参数代表着一个依赖。第 2章 Spring 中的 Bean习题一、填空题1. 所谓自动装配,就是将一个Bean自动的注入到到其他 Bean的【】中。2. Controller 通常作用在控制层,如 Spring MVC 的【】,用于将控制层的类标识为Spring中的Bean,其功能与 Component相同

9、。3. 【】注解用于将数据访问层(DAO层)的类标识为Spring中的Bean,其功能与Component 相同。4. 对于【】作用域的 Bean, Spring 只负责创建,当容器创建了 Bean 实例后, Bean 的实例就交给客户端代码来管理, Spring 容器将不再跟踪其生命周期。5. 实例工厂方式采用直接创建Bean实例的方式,在配置文件中,需要实例化的Bean是通过【】属性指向配置的实例工厂,然后使用 factory-method 属性确定使用工厂中的哪个方法。二、判断题1. Component注解用于描述 Spring中的Bean,它是一个泛化的概念,仅仅表示一个组件,并且可以

10、作用在任何层次,使用时只需将该注解标注在相应方法上即可。()2. Spring 提供了 3种基于 XML 的装配方式:设值注入、构造注入和属性注入。 ()3. 每次客户端请求 singleton 作用域的 Bean 时, Spring 容器都会创建一个新的实例,并且不会管那些被配置成 singleton 作用域的 Bean 的生命周期。 ()4. Spring 中使用 prototype 定义的 Bean 在 Spring 容器中将只有一个实例, 也就是说, 无论有多少个 Bean 引用它,始终将指向同一个对象。 ()5. 对于 prototype 作用域的 Bean, Spring 只负责创

11、建,当容器创建了 Bean 实例后, Bean 的实例就交给客户端代码来管理, Spring 容器将不再跟踪其生命周期。 ()三、选择题1. Spring的bean元素中的autowire属性取值不包括以下。()A: default B: byName C: byType D: byId2. 以下有关 Bean 的装配方式说法正确的是。 ()A: Spring容器支持多种形式的 Bean的装配方式,如基于XML的装配、基于注解(Annotation) 的装配和自动装配(其中最常用的是基于 XML 的装配);B: Spring 提供了 3 种基于 XML 的装配方式:设值注入、构造注入和属性注入

12、;C:在Spring实例化Bean的过程中,Spring首先会调用Bean的默认构造方法来实例化Bean对象,然后通过反射的方式调用setter方法来注入属性值;D: 设值注入要求一个 Bean 必须提供一个有参构造方法并且为需要注入的属性提供对应的 setter 方法。3. 以下哪些不属于 Spring 4.3版本中Bean的作用域。()A: application B: request C: response D: globalSession4. Spring 中定义了一系列的注解,以下有关其常用的注解说明错误的是。 ( )A: Autowired 用于对 Bean 的属性变量、 属性的

13、setter 方法及构造方法进行标注, 配合对应 的注解处理器完成 Bean 的自动配置工作,默认按照 Bean 的名称进行装配。B: Repository 用于将数据访问层( DAO 层)的类标识为 Spring 中的 Bean。C: Service 通常作用在业务层( Service 层),用于将业务层的类标识为 Spring 中的 Bean。D: Controller 通常作用在控制层(如 Spring MVC 的 Controller ),用于将控制层的类标识 为 Spring 中的 Bean。5. 下列选项中,不属于 Spring 中实例化 Bean 的方式的是。 ( )A: 构造器

14、实例化B: 静态工厂方式实例化C: 实例工厂方式实例化D: 抽象方法实例化四、简答题1. 请简述基于 XML 的装配方式中设值注入的要求。答案一、填空题1.Property2.Controller3.Repository4.prototype5.factory-bean、判断题1.错2.错3.错4.错5.对、选择题1.D2.C3.C4.A5.D四、简答题Spring 中基于 XML 的装配方式中设值注入需要满足以下两点要求:1、Bean 类必须提供一个默认的无参构造方法。2、Bean类必须为需要注入的属性提供对应的setter方法。第 3章 Spring AOP习题一、填空题1. Aspect

15、J 框架中注解【 】用于定义切入点表达式,在使用时还需定义一个包含名字和 任意参数的方法签名来表示切入点名称。2. 在 Spring配置文件中,aop:aspect子元素的 pointcut-ref属性用于指定一个已经存在的 【 】。3. 在 Spring 的配置文件中,配置切面使用的是【】元素。4. 在 Spring 中,使用【】是创建 AOP 代理的基本方式。5. AOP 术语中【】表示 AOP 框架在特定的切入点执行的增强处理,即在定义好的切入点处所要执行的程序代码。二、判断题1. 如果在同一个连接点有多个通知需要执行,那么在同一切面中,目标方法之前的前置通知 和环绕通知的执行顺序是未知

16、的,目标方法之后的后置通知和环绕通知的执行顺序也是未 知的。( )2. AspectJ 框架中的注解 After 用于定义最终 final 通知,不管是否异常, 该通知都会执行。( )3. Spring配己置文件中的 beans元素下可以包含多个 aop:config 元素,一个 aop:config元素中又可以包含属性和子元素,其子元素包括aop:pointcut、aop:advisor禾口 aop:aspect。()4. Spring 中的 AOP 代理默认就是使用 CGLIB 代理的方式来实现的。 ( )5. Spring 3.0以后,Spring AOP引入了对AspectJ的支持,并

17、允许直接使用AspectJ进行编程,而 Spring 自身的 AOP API 也尽量与 AspectJ 保持一致。 ()三、选择题1. 以下不属于 ProxyFactoryBean 类中的常用可配置属性的是。 ()A: targetB: proxyInterfacesC: targetClassD: interceptorNames2. 以下哪种类型不是 Spring 中的通知类型。 ( )A: 异常通知B: 前置通知C: 后置通知D: 最终通知3. 关于 AspectJ 注解的介绍,说法错误的是。 ()A: Aspect 用于定义一个切面B: Pointcut 用于定义切入点表达式C: Be

18、fore 用于定义前置通知,相当于 BeforeAdviceD: After 用于定义后置通知,相当于 AfterReturningAdvice4. 以下有关 CGLIB 代理相关说法正确的是。 ()A: CGLIB 代理的使用非常简单,但它还有一定的局限性 使用动态代理的对象必须实现个或多个接口。B: 如果要对没有实现接口的类进行代理,那么可以使用 CGLIB 代理。C: CGLIB 是一个高性能开源的代码生成包,在使用时需要另外导入 CGLIB 所需要的包。D: Spring 中的 AOP 代理,可以是 JDK 动态代理,也可以是 CGLIB 代理。5. 以下关于 Spring AOP 的

19、介绍错误的是。 ( )A: AOP 的全称是 Aspect -Oriented Programming ,即面向切面编程(也称面向方面编程) 。B: AOP 采取横向抽取机制,将分散在各个方法中的重复代码提取出来,这种采用横向抽取 机制的方式,采用 OOP 思想是无法办到的。C: 虽然 AOP 是一种新的编程思想,采取横向抽取机制,是 OOP 的升级替代品。D: 目前最流行的 AOP 框架有两个,分别为 Spring AOP 和 AspectJ。四、简答题1. 请对 Spring 的通知类型进行简要说明。答案一、填空题1.Pointcut2.切入点名称3.4.ProxyFactoryBean5

20、.Advice判断题1.对2.对3.对4.错5.错选择题1.C2.D3.D4.C5.C四、简答题Spring 中主要包含 5 种通知类型,分别是环绕通知,前置通知,后置通知,异常通知和引介通 知。其中,环绕通知表示在目标方法执行前后实施增强,可以应用于日志、事务管理等功能。前置 通知表示在目标方法执行前实施增强,可以应用于权限管理等功能。后置通知表示在目标方法执行 后实施增强,可以应用于关闭流、上传文件、删除临时文件等功能。异常通知表示在方法抛出异常 后实施增强,可以应用于处理异常记录日志等功能。引介通知表示在目标类中添加一些新的方法和 属性,可以应用于修改老版本程序(增强类)第 4章 Spr

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

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

23、()三、选择题1. Spring JDBC 模块主要由 4个包组成,其中不包括。 ()A: core (核心包)B: dataSource (数据源包)C: driverClass (数据库驱动包)D: support (支持包)2. JdbcTemplate 的直接父类是。 ()A: JdbcAccessorB: JdbcOperationsC: JdbcSupperD: Object3. JdbcTemplate 类包含在 Spring JDBC 模块的哪个包中。 ()A: 核心包B: 数据源包C: 对象包D: 支持包4. 下面关于update()方法描述错误的是。()A: update(

24、) 方法可以完成插入、更新、删除和查询数据的操作B:在JdbcTemplate类中,提供了一系列的update()方法C: update() 方法执行后,会返回受影响的行数D: update() 方法返回的参数是 int 类型5. 下面描述中,关于 query() 方法说法错误的是。 ( )A: List query(String sql, RowMapper rowMapper) 会执行 String 类型参数提供的 SQL 语句, 并 通过 RowMapper 返回一个 List 类型的结果。B: List query( String sql, PreparedStatementSette

25、r 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 )可以返回多行数据的结果, 但

26、必须是返回列表, elementType 参数返回的是 List 元素类型。四、简答题1. 请简述如何使用 Junit 对程序中的方法进行测试。答案一、填空题1.query()2.update()3.Test4.driverClassName5.JdbcAccessor、判断题1.对2.对3.对4.对5.对、选择题1.C2.A3.A4.A5.C四、简答题使用 JUnit 对程序中的方法进行测试时的步骤如下:1、先创建一个普通测试方法,并在方法上添加单元测试的注解Test;2、 添加Test注解后,在注解处会报错,将鼠标移动至Test注解处,会弹出错误提示框,单 击提示框中的 Add JUnit

27、4 library to the build path 后, Eclipse 会自动将 JUnit4 的支持包加入到项目中;3、在执行程序时, 只需使用鼠标右键单击测试方法, 在弹出的快捷菜单中选择 Run As 中的 JUnit Test选项来运行测试方法即可。第5章 Spring 的事务管理习题一、填空题1. 使用基于注解方式的事务管理需要在使用事务的 Spring Bean 类或者 Bean 类的方法上添加 注解【 】。2. Spring 的声明式事务管理可以通过两种方式来实现,一种是基于 XML 的方式,另一种是基 于【 】的方式。3. Spring2.0 以后,提供了 tx 命名空间

28、来配置事务, tx 命名空间下提供了【 】元素来配 置事务的通知(增强处理) 。4. 在 Spring 的所有 JAR 包中,包含一个名为【 】的 JAR 包,该包就是 Spring 提供的用 于事务管理的依赖包。5. 声明式事务管理:是通过【 】实现的事务管理。二、判断题1. 基于 XML 方式的声明式事务管理是通过在配置文件中配置事务规则的相关声明来实现的。 ()2. 编程式事务管理是通过编写代码实现的事务管理,包括定义事务的开始、正常执行后的事 务提交和异常时的事务回滚。 ( )3. Spring 的事务管理简化了传统的事务管理流程,并且在一定程度上减少了开发者的工作量。 ()4. Sp

29、ring 的声明式事务管理可以通过两种方式来实现,一种是基于 XML 的方式,另一种是基 于 Annotation 的方式。( )5. Responsebody 注解与 RequestMapping 注解配合使用时,页面中将可以获取到方法的返 回值。( )三、选择题1. 以下关于 Transactional 注解可配置的参数信息及秒正确的是。 ( ) A: value 用于指定需要使用的事务管理器,默认为;B: read-only 用于指定事务是否只读,默认为true;C: isolation 用于指定事务的隔离级别,默认为 Isolation.READ_COMMITTED ; D: prop

30、agation 用于指定事务的传播行为,默认为Propagation. SUPPORTS ;2. 以下基于 XML 方式的声明式事务管理配置文件中 元素的子元素 属性 描述错误的是。 ( )A: name :该属性为必选属性,它指定了与事务属性相关的方法名B: propagation :用于指定事务的传播行为,它的默认值为 SUPPORTSC: isolation :该属性用于指定事务的隔离级别,其默认值为 DEFAULTD: read-only :该属性用于指定事务是否只读,其默认值为false3. 以下有关事务管理方式相关说法错误的是。 ( )A: Spring 中的事务管理分为两种方式:

31、一种是传统的编程式事务管理,另一种是声明式事 务管理。B: 编程式事务管理: 是通过 AOP 技术实现的事务管理, 就是通过编写代码实现的事务管理, 包括定义事务的开始、正常执行后的事务提交和异常时的事务回滚。C: 声明式事务管理: 其主要思想是将事务管理作为一个 “切面”代码单独编写, 然后通过 AOP 技术将事务管理的 “切面 ”代码植入到业务目标类中。D: 声明式事务管理最大的优点在于开发者无需通过编程的方式来管理事务,只需在配置文 件中进行相关的事务规则声明,就可以将事务规则应用到业务逻辑中。4. 以下有关 Spring 事务管理及核心接口说法错误的是。 ( )A: PlatformT

32、ransactionManager 接口是 Spring 提供的平台事务管理器,主要用于管理事务。B: TransactionDefinition 接口是事务定义(描述)的对象,该对象中定义了事务规则,并提 供了获取事务相关信息的方法。C: TransactionStatus 接口是事务的状态,它描述了某一时间点上事务的状态信息。D: 在事务管理过程中,传播行为可以控制是否需要创建事务以及如何创建事务,通常情况 下,对于数据的查询、插入、更新和删除操作,必须进行事务管理。5. 下列选项中,哪一个不是 Spring 中事务管理的核心接口。 ( )A: PlatformTransactionMan

33、agerB: TransactionDefinitionC: TransactionStatusD: TransactionManager四、简答题1. 请列举 PlatformTransactionManager 接口提供了有哪些事务操作方法,并对这些方法分别进 行简单说明。答案一、填空题1.Transactional2.Annotation3.4.spring -tx.RELEASE.jar5.AOP 技术、判断题1.对2.对3.对4.对5.对、选择题1.A2.B3.B4.D5.D四、简答题PlatformTransactionManager 接口中提供了三个事务操作方法,具体如下所示:(

34、 1) TransactionStatus getTransaction(TransactionDefinition definition ) :用于获取事务状态信息。( 2) void commit(TransactionStatus status) :用于提交事务。3) void rollback(TransactionStatus status) :用于回滚事务。第 6章 初识 MyBatis习题一、填空题1. MyBatis 的删除操作在映射文件中是通过配置【 】元素来实现的。2. MyBatis 映射文件中 元素是配置文件的根元素,它包含一个【 】属性,该属 性为这个 指定了唯一的命

35、名空间。3. 使用 MySQL 中的【 】函数进行字符串拼接,可以有效防止模糊查询时可能出现的 SQL 注入问题。4. mybatis -config.xml 作为 MyBatis 的全局配置文件,配置了 MyBatis 的运行环境等信息,其 中主要内容是获取【 】。5. 【】是当前主流的Java持久层框架之一,它与Hibernate 样,也是一种ORM框架。、判断题1. MyBatis映射文件中元素是配置文件的根元素,它包含一个namespace属性,该属性为这个指定了唯一的命名空间。()2. 使用 MyBatis 框架非常简单, 只需在应用程序中引入 MyBatis 框架 lib 目录中的

36、全部 JAR 包以及数据库驱动包即可进行项目运行。 ()3. ORM 就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。 ()4. MyBatis 的更新操作也需要进行事务提交。 ()5. 创建的映射文件中的 SQL 语句要以面向对象的写法进行书写。 ()三、选择题1. MyBatis 的删除操作有关说发错误的是。 ()A: MyBatis的删除操作在映射文件中是通过配置元素来实现的。B: MyBatis 的删除操作也需要进行事务提交。C: MyBatis的删除操作执行了SqI

37、Session的delete。方法。D: MyBatis 的删除操作和添加操作时,也需要封装整个实体类。2. MyBatis 的更新操作有关说发错误的是。 ()A: MyBatis的更新操作在映射文件中是通过配置元素来实现的。B: MyBatis 的更新操作也需要进行事务提交。C: MyBatis的更新操作执行了SqlSession的update。方法。D: MyBatis的更新操作和添加操作时,只需要将insert()方法改为updat()方法即可。3. 关于 MyBatis 模糊查询中进行 SQL 字符串拼接时,说法错误的是。 ()A: 使用 “ $进”行 SQL 字符串拼接时,无法防止

38、SQL 注入问题。B:可以使用MySQL中的concat()函数进行字符串拼接。C:使用MySQL中的concat()函数进行字符串拼接,也无法防止SQL注入。D:使用MySQL中的concat()函数进行字符串拼接,导致数据库移植性变差。4. 有关 MyBatis 工作原理说法错误的是。 ()A: MyBatis 的全局配置文件配置了 MyBatis 的运行环境等信息, 其中主要内容是获取数据库连接B: MyBatis 映射文件中配置了操作数据库的 SQL 语句,需要在 MyBatis 的全局配置文件中 加载才能执行C: 可以通过 MyBatis 的环境等配置信息构建会话对象 SqlSess

39、ionD: SqISession对象,该对象中包含了执行 SQL的所有方法5. 使用 ORM 框架后,应用程序不再直接访问底层数据库,而是以()的方式来操作持久化对象(PO,即卩 Persisent Object)。()A: 面向业务 B: Hibernate C: 面向对象 D: MyBatis四、简答题1. 请简述 Hibernate 和 MyBatis 这两个框架的主要区别。答案一、填空题1.2.namespace3.concat()4.数据库连接5.MyBatis、判断题1.错2.错3.对4.对5.错、选择题1.D2.D3.C4.C5.C四、简答题Hibernate 是一个全表映射的框

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

41、编写 SQL 要比使用 Hibernate 的工作量大,但 MyBatis 可 以配置动态SQL并优化SQL,可以通过配置决定 SQL的映射规则,它还支持存储过程等。对于一 些复杂的和需要优化性能的项目来说,显然使用 MyBatis 更加合适。第 7章 MyBatis 的核心配置习题一、填空题1. 当数据表中的列和需要返回的对象的属性不完全一致, MyBatis 是不会自动赋值的。 此时, 就可以使用【 】元素进行处理。2. 元素的子元素 用于表示哪个列是 【 】,而【 】元素用于表示 POJO 和数据表中普通列的映射关系。3. MyBaits 映射文件中使用 元素的【】属性可以引用自定义的代

42、码片段,其属性值为自定义代码片段的 id。4. MyBatis映射文件中的子元素的order属性可以被设置为【】或【 】。5. 对于数据源的配置, MyBatis 框架提供了 UNPOOLED 、【 】和 JNDI 三种数据源类型。二、判断题1. 的子元素和用于处理多表时的关联关系。()2. MyBatis映射文件的元素的属性与元素的属性大部分相同,但还包含了3个特有属性。 ()3. MyBatis 框架提供了许多默认别名,由于别名不区分大小写,所以在使用时要注意重复定义的覆盖问题。 ()4. 映射文件中可以包含多个 id 值相同的 元素。( )5. 与元素一样,和元素在执行完之后,也会返回一

43、个表示影响记录条数的整数。 ()三、选择题1. 以下有关 元素说法错误的是。 ()A: 元素的作用就是定义可重用的 SQL 代码片段,然后在其他语句中引用这一代码片段。B: 使用 元素的 refid 属性可以引用自定义的代码片段。name。)SQL 语句后,没有返回结果。C: 使用 元素 refid 的属性值为自定义代码片段的 D: 元素是 元素的子元素。2. 以下有关MyBatis映射文件中元素说法正确的是。 A: 元素用于映射插入语句,在执行完元素中定义的 B: 元素的属性与 元素的属性相同。C: keyColumn 属性用于设置第几列是主键,当主键列不是表中的第一列时需要设置。D: us

44、eGeneratedKeys(仅对 insert 有用)此属性会使 MyBatis 使用 JDBC 的 getGeneratedKeys() 方法来获取由数据库内部生产的主键。3. 以下关于元素及其属性说法错误的是。()A: 元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给 业务开发人员。B: parameterType 属性表示传入 SQL 语句的参数类的全限定名或者别名。C: resultMap 表示外部 resultMap 的命名引用,返回时可以同时使用 resultType 和 resultMapD:在同一个映射文件中可以配置多个元素。4. 关于 元素说法错误的是

45、。 ()A: 元素就是用来在配置文件中注册自定义的类型处理器的,它的使用方式有 两种。B: 通过 元素的子元素 就可以配置单个类型处理器。C:通过元素的子元素可以配置包下的所有类型处理器。D: 元素的子元素的handler属性用于指定类型处理器所在的包名, 系统会在启动时自动的扫描 com.itheima.type 包下所有的文件,并把它们作为类型处理器。5. 有关MyBatis配置文件中元素的说法错误的是。()A: 元素主要用于改变 MyBatis 运行时的行为,例如开启二级缓存、开启延迟加载 等。B:虽然不配置元素,也可以正常运行 MyBatis,但是熟悉的配置内容以 及它们的作用还是十分

46、必要的。C: 元素中延迟加载的全局开关的参数 lazyLoadingEnabled 默认开启。D: 元素的配置内容大多数都不需要开发人员去配置它,通常在需要时只配置少数 几项即可。四、简答题1.请简述元素的作用及使用。答案一、填空题1.2.主键 、 3.refid4.BEFORE 、 AFTER5.POOLED、判断题1.对2.对3.对4.错5.对、选择题1.C2.C3.C4.D5.C四、简答题元素的作用就是定义可重用的SQL代码片段。使用时,先通过元素定义重用的代码片段,然后在需要使用的地方使用 元素的 refid 属性引用了自定义的代码片段。第 8章 动态 SQL习题一、填空题1. 当在M

47、yBaits文件中使用了 bind元素,在SQL语句中可以直接引用bind元素的【】属性值即可进行动态 SQL 组装。2. 在使用 MyBaits 的 foreach 时,如果传入的参数是多个的时候,就需要把它们封装成一个Map 了,这时候 collection 属性值就为 Map 的【】。3. 在MyBaits映射文件中使用set和if元素组合进行update语句动态SQL组装时,如果set元素内包含的内容都为空,则会出现【】。4. MyBaits中trim元素的作用是去除一些特殊的字符串,它的【】属性代表的是语句的前缀,而 prefixOverrides 属性代表的是需要去除的哪些特殊字符

48、串。5. 使用set和if元素相结合的方式来组装update语句时,set元素就会动态前置 【】关键字,同时也会消除 SQL 语句中最后一个多余的【】。二、判断题1. 可以将任何可迭代对象(如列表、集合等)和任何的字典或者数组对象传递给foreach作为集合参数。 ()2. 在MyBaits映射文件中使用set和if元素组合进行update语句动态SQL组装时,如果set元素内包含的内容都为空,则会出现 SQL 语法错误。 ()3. MyBaits中对原始 SQL中的“ where1=1 的条件可以使用where与if元素组合进行替换。()4. 在MyBatis中if元素用于单条件分支判断,当

49、某个 if的test属性判断成立,然后跳过其 他 if 元素进行动态 SQL 组装。( )5. MyBatis中的foreach元素可以用于对数组和集合循环遍历,批量执行SQL操作。()三、选择题1. 以下不属于foreach元素中使用的属性的是。 ()A: separatorB: collectionC: currentD: item2. 以下关于foreach元素中使用的几种属性的描述错误的是。()A: item :配置的是循环中当前的元素。B: index :配置的是当前元素在集合的位置下标。C: collection :配置的是传递过来的参数类型, 它可以是一个 array、list(

50、或collection )、Map 集合的键、 POJO 包装类中数组或集合类型的属性名等。D: separator :配置的是各个元素的间隔符。3. 以下关于MyBatis的set元素的使用及说法正确的是。()A: set元素主要用于更新操作,其主要作用是在动态包含的SQL语句前输出一个 SET关键字,并将 SQL 语句中最后一个多余的逗号去除。B:使用MyBatis的set元素来更新操作时,前端需要传入所有参数字段,否则未传入字段 会默认设置为空。C:在映射文件中使用和元素组合进行update语句动态SQL组装时,元素内 包含的内容可以都为空, 元素会进行判断处理。D:在映射文件进行更新操

51、作时,只需要使用元素就可以进行动态SQL组装。4. 以下有关 MyBatis 动态 SQL 中的主要元素说法错误的是。 ( )A: 用于单条件分支判断。B: ( 、 )用于多条件分支判断。C: 循环语句,常用于 in 语句等列举条件中。D: 从 OGNL 表达式中创建一个变量, 并将其绑定到上下文, 只于模糊查询的 sql 中。5. 当有多个选择的情况是,值需要从多个选项中选择一个去执行时,可以使用的动态SQL 元素是。( )A: B: 、 、C: D: 四、简答题1. 请简述 MyBatis 动态 SQL 中的主要元素及说明。答案一、填空题1. name2. 键3. SQL 语法错误4. p

52、refix5. SET 、逗号、判断题1.对2.对3.对4.错5.对、选择题1.C2.C3.A4.D5.B四、简答题MyBatis 动态 SQL 中的主要元素及说明如下: :判断语句,用于单条件分支判断; ( 、):相当于 Java 中的 switch.case.default 语句,用于多条件分 支判断;、:辅助元素,用于处理一些SQL拼装、特殊字符问题; :循环语句,常用于 in 语句等列举条件中;sql 中。 :从 OGNL 表达式中创建一个变量,并将其绑定到上下文,常用于模糊查询的第 9章 MyBatis 的关联映射习题一、填空题1. MyBatis 是通过 元素的【2. MyBati

53、s 是通过 元素的【3. 在关系型数据库中,多对多关系会产生【 主键成为联合主键或使用新的字段作为主键。4. 在关系型数据库中,一对一可以在【5. 子元素的 所包含的【二、判断题1. MyBatis的。(2.3.4.】子元素该元素来处理多对多关联关系的。】子元素该元素来处理一对一关联关系的。】表,引入两张表的主键作为外键,两个】引入对方主键作为外键。ofType 属性与 javaType 属性对应,它用于指定实体对象中集合类属性 】。是同样是通过 元素的 子元素该元素来处理多对多关联关系 )5.三、选择题MyBatis 在映射文件中加载关联关系对象主要通过两种方式:嵌套查询和嵌套结果。 ( )

54、 在关系型数据库中,一对多就是在 “一 ”的一方,添加 “多”的一方的主键作为外键。 ( )MyBatis中元素的属性与元素相同,且使用也很简单,同样有嵌套 查询和嵌套结果两种关联方式。 ( )MyBatis是通过元素的子元素该元素来处理一对一关联关系的。()1. 以下关于 MyBatis映射文件中元素属性的说明错误的是。()A: property :指定映射到的实体类对象属性,与表字段一一对应。B: column :指定表中对应的字段。C: javaType :指定映射到实体对象属性的类型。D: fetchType :指定在关联查询时是否启用延迟加载。fetchType属性有lazy和eag

55、er两个属性值,默认值为 eager。2. 下面关于数据库中多表之间关联关系说法错误的是。()A: 一对一关联关系可以在任意一方引入对方主键作为外键。B: 一对多关联关系在 “一”的一方,添加 “多”的一方的主键作为外键。C: 多对多关联关系会产生中间关系表,引入两张表的主键作为外键。D: 多对多关联关系的两个表的主键成可以为联合主键或使用新的字段作为主键。3. 下面关于 Java 对象之间的关联关系描述正确的是 。()A: 一对一的关系就是在本类和对方类中定义同一个类型的对象。B: 一对多的关系就是一个A类类型对应多个 B类类型的情况。C: 多对多的关系只需要在一方的类中引入另一方类型的集合

56、。D: 多对多关联关系需要在本类中引入本类的集合。4. 下面属性中不属于元素属性的是。()A: propertyB: columnC: ofTypeD: javaType5. 下面关于 元素的描述正确的是。 ( )A: MyBatis 就是通过 元素来处理一对多关联关系的。B: 元素的属性与 元素完全相同。C: ofType 属性与 javaType 属性对应,它用于指定实体对象中所有属性所包含的元素类型。 D: 元素只能使用嵌套查询方式。四、简答题1. 请简要说明 MyBatis 在映射文件中加载关联关系对象的方式。答案一、填空题1.2.3.中间关系4.任意一方:卡W、,/ Titrl5.元

57、素类型、判断题1.对2.对3.错4.错5.对、选择题1.D2.B3.B4.C5.A四、简答题MyBatis 在映射文件中加载关联关系对象主要通过两种方式:嵌套查询和嵌套结果。嵌套查询 是指通过执行另外一条 SQL 映射语句来返回预期的复杂类型; 嵌套结果是使用嵌套结果映射来处理 重复的联合结果的子集。第 10章 MyBatis 与 Spring 的整合习题一、填空题1. 在 MyBatis+Spring 的项目中,事务是由【 】来管理的。2. MyBatis -Spring 团队提供了一种自动扫描的形式来配置 MyBatis 中的映射器 采用 【 】类。3. 【 】是 MyBatis -Spring 团队提供的一个用于根据 Mapper 接口生成 Mapper 对象的类。4. SqlSessionDaoSupport 是一个抽象支持类,可以通过 SqlSessionDaoSupport 类的【 】 方法来获取所需的SqlSession。5. 在进行 Spring 与 MyBatis 整合时, Spring 框架所需要准备的 JAR 包共 10 个,其中包括: 4 个核心模块

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!