0


MyBatis核心配置相关习题

文章目录

一、单选题

1、下列元素中,属于MyBatis配置文件的根元素的是()。

A、<mapper>元素

B、<dataSource>元素

C、<configuration>元素

D、<settings>元素

正确答案:C

<configuration>是MyBatis核心配置文件的根元素,<mapper>、<setting>是<configuration>的子元素,<dataSource>是<environments>的子元素
在这里插入图片描述

2、下列关于MyBatis中默认的常见Java类型的别名,正确的是()。

A、映射类型为byte,则别名为Byte

B、映射类型为Byte,则别名为Byte

C、映射类型为String,则别名为string

D、映射类型为Date,则别名为Date

正确答案:C

A、B:映射类型为Byte,则别名为Byte

D:映射类型为Date,则别名为date

3、下列元素中,不属于<environments>元素的子元素的是()。

A、<environment>

B、<dataSource>

C、<transactionManager>

D、<plugins>

正确答案:D

解析参考单选题第1题

4、下列元素中,可以为POJO实体类设置别名的是()。

A、<typeAliases>元素

B、<settings>元素

C、<mappers>元素

D、<properties>元素

正确答案:A

A:<typeAliases>元素为POJO实体类设置一个简短的别名,再通过MyBatis的核心配置文件与映射文件相关联

B:<settings>元素用于MyBatis中的设置调整

C:<mappers>元素用于引入映射文件

D:<properties>元素是一个配置属性的元素,该元素的作用是读取外部文件的配置信息

5、有关MyBatis配置文件中<settings>元素的说法错误的是()。

A、<settings>元素中可以开启二级缓存

B、<settings>元素中可以开启延迟加载

C、<settings>元素中延迟加载的全局开关的参数lazyLoadingEnabled默认开启

D、<settings>元素中可以开启关联对象属性的延迟加载

正确答案:C

<settings>元素中延迟加载的全局开关的参数lazyLoadingEnabled默认关闭

6、下列关于<settings>元素的autoMappingBehavior属性的取值,错误的是()。

A、NONE表示取消自动映射

B、PARTIAL只会自动映射没有定义嵌套结果集映射的结果集

C、FULL会自动映射任意复杂的结果集

D、NOT表示取消自动映射

正确答案:D

None表示取消自动映射

7、以下关于<select>元素及其属性说法错误的是()。

A、<select>元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给业务开发人员

B、parameterType属性表示传入SQL语句的参数类的全限定名或者别名

C、resultMap表示外部resultMap的命名引用,返回时可以同时使用resultType和resultMap

D、在同一个映射文件中可以配置多个<select>元素

正确答案:C

resultType和resultMap不能同时使用

8、下列关于<insert>元素的statementType属性的取值,错误的是()。

A、STATEMENT

B、DEFAULT(默认值)

C、CALLABLE

D、PREPARED(默认值)

正确答案:B

默认值时PREPORE

STATEMENT:Statement,直接操作sql,不进行预编译,不带参数

CALLABLE:CallableStatement,执行存储过程

PREPARED:PreparedStatement,进行预编译,可带参数

9、下列选项中,正确使用<sql>元素定义一个包含uid、uname和uage字段的代码片段的是()。

A、<sql id=“userColumns”>${alias}.uid, ${alias}.uname, ${alias}.uage</sql>

B、<sql id=“userColumns”>alias.uid, alias.uname, alias.uage</sql>

C、<sql>${alias}.uid, ${alias}.uname, ${alias}.uage</sql>

D、<sql id=“userColumns”>${alias}.uid; ${alias}.uname; ${alias}.uage</sql>

正确答案:A

无解析

10、下列关于<mapper>元素的说法正确的是()。

A、<mapper>元素的namespace属性是不唯一的

B、<mapper>元素的namespace属性值的命名不一定跟接口同名

C、<mapper>元素不是映射文件的根元素

D、<mapper>元素是映射文件的根元素

正确答案:D

A:<mapper>元素只有一个namespace属性

B:namespace用于绑定DAO接口,其命名必须与某个DAO接口同名

C:<mapper>元素是映射文件的根元素

11、以下有关<properties>元素说法错误的是()。

A、<properties>是一个配置属性的元素,该元素的作用是读取外部文件的配置信息

B、使用<properties…/>元素配置数据库驱动、连接数据库的URL、连接数据库的用户名和连接数据库的密码等数据库连接参数

C、<properties>元素可以通过db.properties文件实现静态参数配置

D、以上说法都正确

正确答案:C

<properties>元素通过db.properties文件实现动态参数配置

12、以下有关MyBatis映射文件中<insert>元素说法正确的是()。

A、<insert>元素用于映射插入语句,在执行完元素中定义的SQL语句后,没有返回结果

B、<insert>元素的属性与<select>元素的属性相同

C、keyColumn属性用于设置第几列是主键,当主键列不是表中的第一列时需要设置

D、useGeneratedKeys(仅对insert有用)此属性会使MyBatis使用JDBC的getGeneratedKeys()方法来获取由数据库内部生产的主键

正确答案:C

A:执行完SQL语句后会返回插入数据的数量

B:两个元素的属性大部分相同

D:该属性对insert和update有用

13、下列属性中,属于<select>元素中表示结果集的类型是()。

A、keyProperty

B、keyColumn

C、resultSetType

D、useGeneratedKeys

正确答案:C

A:keyProperty属性用于指定POJO类的某个属性接收主键返回值

B、D选项解析参考选择题第12题

14、关于SqlSession对象的查询方法返回的结果类型,正确的是()。

A、泛型对象的Set集合

B、泛型对象的List集合

C、泛型对象的Map集合

D、以上说法都正确

正确答案:B

SqlSession对象的查询方法返回的结果类型为泛型对象的List集合

15、以下有关<sql>元素说法错误的是()。

A、<sql>元素的作用就是定义可重用的SQL代码片段,然后在其他语句中引用这一代码片段

B、使用<include>元素的refid属性可以引用自定义的代码片段

C、使用<include>元素refid的属性值为自定义代码片段的name

D、<sql>元素是<mapper>元素的子元素

正确答案:C

使用<include>元素refid的属性值为自定义代码片段的name

16、假设有一个名称为UserMapper的XML文件,下列关于使用类路径引入映射文件的示例代码正确的是()。

A、<mappers><mapper resource=“com/itheima/mapper/UserMapper.xml”/></mappers>

B、<mappers><mapper resource=“com/itheima/mapper/UserMapper”/></mappers>

C、<mapper resource=“com/itheima/mapper/UserMapper.xml”/>

D、以上说法都不正确

正确答案:A

通过mapper元素引入映射文件的方法有4种:

使用类路径引入:
<mappers><mapperresource="com/itheima/mapper/UserMapper.xml"/></mappers>
使用本地文件路径引入:
<mappers><mapperurl="file:///D:/com/itheima/mapper/UserMapper.xml"/></mappers>
使用接口类引入:
<mappers><mapperclass="com.itheima.mapper.UserMapper"/></mappers>
使用包名引入:
<mappers><packagename="com.itheima.mapper"/></mappers>

二、多选题

17、有关<resultMap>元素的说法正确的是()。

A、<resultMap>元素的主要作用是定义映射规则、级联的更新以及定义类型转化器等

B、当数据表中的列和对象的属性不一致时,此时就可以使用<resultMap>元素进行处理

C、<resultMap>元素中的<association>和<collection>用于处理多表时的关联关系

D、以上说法都正确

正确答案:ABCD

以上说法都正确

18、以下有关SqlSession对象的说明正确的是()。

A、SqlSession是MyBatis框架中另一个重要的对象,其主要作用是执行持久化操作

B、每一个线程都应该有一个自己的SqlSession实例,并且该实例是不能被共享的

C、SqlSession实例也是线程不安全的,因此其使用范围最好在一次请求或一个方法中

D、使用完SqlSession对象之后,要及时的关闭它,通常可以将其放在finally块中关闭

正确答案:ABCD

以上说法都正确

19、下列选项中,可以通过<mappers>元素引入映射文件的方法的是()。

A、使用类路径引入

B、使用本地文件路径引入

C、使用接口类引入

D、使用包名引入

正确答案:ABCD

解析参考单选题第16题解析

20、关于<environments>元素及其子元素的说法正确的是()。

A、在配置文件中,<environments>元素用于对环境进行配置

B、在<environments>元素中可以配置1个<environment>子元素,包含事务管理和数据源的配置信息

C、<environment>的子元素<dataSource>用于配置数据源,它的type属性用于指定使用哪种数据源

D、可通过<environments>元素配置多种数据源,MyBatis框架提供了三种数据源类型

正确答案:ACD

在<environments>元素中可以配置多个<environment>子元素

21、下列属于SqlSessionFactoryBuilder构建SqlSessionFactory对象的build()方法的是()。

A、build(InputStream inputStream, String environment, Properties properties)

B、build(Reader reader, String environment, Properties properties)

C、build()

D、build(Configuration config)

正确答案:ABD

在这里插入图片描述

三、判断题

22、与<insert>元素一样,<update>和<delete>元素在执行完之后,也会返回一个表示影响记录条数的整数。

正确答案:对

无解析

23、SqlSession对象是应用程序与持久层之间执行交互操作的一个单线程对象,主要作用是执行持久化操作。

正确答案:对

无解析

24、SqlSessionFactory对象是线程安全的,它一旦被创建,在整个应用程序执行期间都会存在。

正确答案:对

无解析

25、SqlSession对象是线程不安全的。

正确答案:对

无解析

26、POOLED数据源的poolMaximumActiveConnections属性,默认值为1。

正确答案:错

poolMaximumActiveConnections:任意时间可以存在的活动连接数量,默认值是10

27、<configuration>的子元素必须按照指定的顺序进行配置,否则MyBatis在解析XML配置文件的时候会报错。

正确答案:对

无解析

28、在Mybatis中,使用<typeAliases>元素为实体类设置别名是区分大小写的。

正确答案:错

别名不区分大小写

29、<mappers>元素是映射文件的根元素,该元素只有一个namespace属性。

正确答案:错

<mapper>元素是映射文件的根元素

30、<delete>元素中有3个键值相关的属性,分别是keyProperty、keyColumn和useGeneratedKeys。

正确答案:错

keyProperty、keyColumn和useGeneratedKeys仅对update和insert有用

31、<delete>元素的parameterType属性是一个可选属性,默认值为unset。

正确答案:对

无解析

32、使用<include>元素的refid属性可以引用自定义的代码片段,refid的属性值为自定义代码片段的id。

正确答案:对

无解析

33、<delete>元素的flushCache属性可以指定是否需要MyBatis清空本地缓存和二级缓存,默认值为false。

正确答案:对

无解析

34、SqlSessionFactory对象的openSession()方法的参数为boolean值时,默认为false。

正确答案:错

默认值为true

四、填空题

35、通常每一个数据库都只创建一个SqlSessionFactory对象,因此在构建SqlSessionFactory对象时,建议使用_________模式。

单例模式

36、如果使用的数据库支持主键自动增长,那么可以通过_________属性指定POJO类的某个属性接收主键返回值。

keyProperty

37、_________元素表示结果映射集,是MyBatis中最重要也是功能最强大的元素。

<resultMap>

38、在MyBatis框架中,SqlSession对象由_________对象创建。

SqlSessionFactory

39、对于数据源的配置,MyBatis框架提供了UNPOOLED、_________和JNDI三种数据源类型。

POOLED

40、在MyBatis中,<transcationManager>元素可以配置两种类型的事务管理器,分别是_________和MANAGED。

JDBC

41、<transcationManager>元素的_________属性设置为false时可以阻止MANAGED事务管理器默认的关闭行为。

closeConnection

42、如果使用的数据库不支持主键自动增长,可以使用MyBatis提供的_________元素来自定义主键。

<selectKey>

43、<select>元素的_________属性是用于设置 MyBatis 预处理类。

statementType

44、MyBatis映射文件中<insert>元素的<selectKey>子元素的order属性可以被设置为_________或AFTER。

BEFORE

如有错误,欢迎指正!!!

标签: mybatis java mysql

本文转载自: https://blog.csdn.net/weixin_61025260/article/details/127075117
版权归原作者 a-oyi 所有, 如有侵权,请联系我们删除。

“MyBatis核心配置相关习题”的评论:

还没有评论