zoukankan      html  css  js  c++  java
  • 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了!

  • 相关阅读:
    LeetCode Path Sum II
    LeetCode Longest Palindromic Substring
    LeetCode Populating Next Right Pointers in Each Node II
    LeetCode Best Time to Buy and Sell Stock III
    LeetCode Binary Tree Maximum Path Sum
    LeetCode Find Peak Element
    LeetCode Maximum Product Subarray
    LeetCode Intersection of Two Linked Lists
    一天一个设计模式(1)——工厂模式
    PHP迭代器 Iterator
  • 原文地址:https://www.cnblogs.com/1234AAA/p/8527646.html
Copyright © 2011-2022 走看看