MyBatis第一次测试卷---错题分析

1.在MyBatis的Mapper文件中,以下选项配置错误的是(A)  

正确答案是D  您的回答是A  回答错误

分析:此题考查MyBatis对于增删改查的配置,选项d误把parameterType写成了resultType,parameterType表示参数配置而resultType表示返回值配置,因此这里选择d

2.在一个MyBatis的应用中,关于SlqessionFactoyfBuilder,SqlsessionFactory以及Sqlsession的应用范围和生命周期,以下说法错误的是(A)

正确答案是D  您的回答是A  回答错误

分析:此题目考查的是SqlSession的生命周期管理,SqlSessionFactoryBuilder因为可以直接实例化,并且创建SqlSessionFactory之后就销毁,因此它是方法范围,SqlSessionFactory应该在应用运行期间都存在,不能频繁销毁和创建,因此它是应用范围,SqlSession是线程不安全的,不同线程之间不能共享使用,因此d不正确

3.以下关于MyBatis的使用场景描述错误的是(A)

正确答案是C  您的回答是A  回答错误

分析:

A描述正确:因为完全透明应该用JDBC,并不适合Mybatis

B描述正确:Mysql因为使用SQL语句映射,不同数据库SQL语法不同,所以不适合MyBatis

D描述正确:Mybatis只支持相对动态SQL语句,SQL写死在映射文件,不属于完全动态

C描述错误:Mybatis的特点就是功能相对简单时,性能很高,所以非常适合Mybatis,C描述说不适合Mybatis,是错误的

4.现有两个实体类User.java和Address.java,代码片段如下: D

正确答案是B  您的回答是D 回答错误

分析:使用collection, javaBean里的属性不是普通属性,而是一个集合,那么property:指的是User这个POJO里的属性名(addressList) ofType:指的是addressList这个list里面存放的是:Address对象,result的column对应的sql语句中的字段名(这里起了个别名:a_id)

5.在MaBatis中,以下关于缓存说法错误的选项是(D)

正确答案是 C  您的答案是D 回答错误

分析:MyBatis的全局二级缓存开关默认为true。

6.关于ResultType取值错误的是(C)

 

正确答案是 A 您回答的是 C 回答错误

分析:esultType表示从该语句中返回的期望类型的类的完全限定名或别名,resultType=”Integer” 其中Integer不是别名,别名是integer,映射类型是java.lang.Integer

7.在Mybatis中,关于<resultmap>和<collection>元素说法错误的是(BC)  选两项

 正确答案是 B,D 您回答的是 B,C 回答错误

分析:<p>&lt; collection&gt;通过type属性指定集合的类型 property用于指定在Java实体类是保存集合关系的属性名称</p>

8.在Mybatis中,下列关于ResultType说法错误的是:(B)

正确答案是 C 您回答的是 B 回答错误

分析:选项C的说法错误,当pojo的属性名与sql语句查询出来的字段名不一致的时候,需要使用resultMap来进行结果的映射,不能使用resultType

9.有如下配置:  通过以下配置判断,下列描述正确的是(C)

 

正确答案是 A 您回答的是 C 回答错误

分析:<p>resultMap元素的子元素collection用来处理&ldquo;一对多&rdquo;的关系。需要指定映射的Java实体类的属性,属性的javaType(一般为ArrayList), javaType属性表示一个Java类的完全限定名,或一个类型别名(参加上面内建类型别名的列表)。如果你映射到一个JavaBean,MyBatis通常可以自动判断类型。然而,如果你映射到的是HashMap,那么你应该明确地指定javaType来保证所需的行为。如果你映射到的是HashMap,那么你应该明确地指定javaType来保证所需的行为。列表中对象的类型ofType(Java实体类);对应的数据库表的列名称;因此正确答案选a</p>

10.关于MyBatis的全局配置文件中,settings元素设置项的默认值伟false的是(A)

正确答案是 D 您回答的是 A 回答错误

 分析:useGeneratedKeys:允许JDBC 生成主键。需要驱动器支持。如果设为了true,这个设置将强制使用被生成的主键,默认值为false,其他设置项都默认值为true

11.如果想让MyBatis将日志信息输出到屏幕,以下选项正确的是(A)

正确答案是 C 您回答的是 A 回答错误

分析:<!--强制指定MyBatis使用log4j作为日志日志框架,若不指定那么当部署到如Tomcat等应用容器时,会被容器设置为使用common-logging来记录日志--> <settings> <setting name="logImpl" value="LOG4J"/> </settings> 在mybatis-config.xml中加入 <setting name="logImpl" value="STDOUT_LOGGING"/> 可以在控制台打印sql语句。

12.存在如下配置:以下选项说法错误的是(D)

正确答案是 B 您回答的是 D 回答错误

分析:B选项当title不为null时1=1和title = #{title}之间没有AND连接同样会有运行时异常  

           B选项很有参考性,不过光加1=1在where后面还不够,需要同时在第一个if中的

           title前还加一个and就OK了!

 

posted @ 2018-03-08 12:12  风骚少年  阅读(12491)  评论(0编辑  收藏  举报
AmazingCounters.com