MyBatis错题合集

1、MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在

2、resultType与resultMap在任何时候都不可以同时使用。
对于resultMap自动映射有三个匹配级别,当采用默认级别配置的时候,若使用association进行内部嵌套的话,只能匹配你指定的属性

3、在MyBatis中,对于Insert映射语句有一个useGeneratedKeys属性,该属性的默认值为 false

4、关于MyBatis中sq1映射文件中各个元素说法正确的是

增删改(insert, delete, update)这些数据库操作默认返回执行SQL影响的行数,所以DA0层.
的接口的方法返回值一般设置为int类型

insert,delete,update这些更新数据操作元素中不能设置resultType,resultMap

5、在MyBatis中,以下关于“无效的列类型: 1111 错误” 说法正确的选项是

以上错误通常是由于传入参数的属性与数据库字段类型不-致导致
	以上错误的解决办法是排查所有传入参数与数据库对应字段的类型,
	以上错误的解决办法是通过指定jdbcType类型来避免

6、在MyBatis中,关于mapper配置文件常用属性的说法中正确的是

parameterType属性用来指定传入参数的类型
	flushCache用来指定执行语句后是否会清空缓存,增删改操作时默认为true
	timeout属性用来指定驱动程序等待数据库返回结果的超时时间

7、在MyBatis的应用中,我们一般需要设置一个超时时间,当数据库操作超过超时时间后MyBatis将执行异常终止操作,可以用 defaultStatementTimeout来设置全局超时时间

8、在MyBatis中,说法正确的是 标签用来定义一个全局的别名,在这里声明后,任何Mapper映射文件中都可以使用

9、在使用MyBatis的时候,除了可以使用@Param注解来实现多参数入参,还可以用 Map对象可以实现传递多参数

10、在MyBatis的开发中,表中的字段名和表对应实体类的属性名称不一定都是完全相同的,说法正确的是

A:查询的列起和类属性名相同的别名, 让字段名的别名和实体类的属性名一致

	B: MyBatis可以配置resul tlMap标签,来映射字段名和实体类属性名的一一对应关系

11、Mybatis中,关于resultlMap collection嵌套查询(select)方式说法正确的是

Column属性设置关联的主键列,用于嵌套查询SQL语句传入参数,多个用逗号分开。

12、在MyBatis中,下列关于resultType和resultMap说法正确的是 resultType也可以是Map数据结构

13、resultMap中association的各个属性的含义:

property:映射数据库列的字段或属性。
        colum:数据库的列名或者列标签别名。
        javaTyp:完整java类名或别名。 
        jdbcType支持的JDBC类型列表列出的JDBC类型。这个属性只在insert,update或delete的时候针对允许空的列有用。
        resultMap: 一个可以映射联合嵌套结果集到一个适合的对象视图上的ResultMap。这是一个替代的方式去调用另一个select语句。

14、当pojo的属性名与sql语句查询出来的字段名不一致的时候,需要使用resultMap来进行结果的映射,不能使用resultType

15、下列关于MyBatis中parameterType的说法正确的是

A:当把一个List实例或者数组作为参数对象传给MyBatis的时候,myBatis会自动将它包装在一个Map中,
    List实例将会以“list”作为键,而数组实例将会以“array”作为键。那么在配置文件中的parameterType是可以不配置

   B: MyBatis的传入参数如果是一个List或数组,可以使用mapper配置文件中的foreach语句

   C: MyBatis的传入参数也可是复杂数据类型:包含Java实体类、Map。通过# {属性名}或# {Map的key}即可获取传入的值

16、在MyBatis应用中,当单表数据量很小的情况下,可以使用Mybatis的RowBounds实现内存分页,以下选项说法正确的是

17、在处理数据库中的数据时,Mybatis、Hibernate和JDBC哪种技术的效率最高

答案:JDBC,因为Mybatis、Hibernate是ORM框架,封装了JDBC,简化了复杂的JDBC操作,没有直接使用JDBC效率高。

18、在MyBatis动态SQL中,以下说法正确的是

A:利用if标签实现简单的条件选择

B: where标签可以简化SQL语句中的where子句处理

C: trim标签可以灵活地去除多余的关键字

19、有关MyBatis中动态SQL的说法中正确的是

A: where元素可以动态创建where子句,且编写时无需考虑以and开头的情况

B: set元素可以为update语句动态创建set子句

相关推荐