MyBatis核心配置相关习题

Posted a-oyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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><mapper resource="com/itheima/mapper/UserMapper.xml"/></mappers>
使用本地文件路径引入:
<mappers><mapper url="file:///D:/com/itheima/mapper/UserMapper.xml"/></mappers>
使用接口类引入:
<mappers><mapper class="com.itheima.mapper.UserMapper"/></mappers>
使用包名引入:
<mappers><package name="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注解开发相关习题

文章目录

一、单选题

1、下列属性中,不属于@Results注解的是()。
A、column
B、property
C、size
D、one
正确答案:C

无解析

2、下列注解中,可以实现一对一关联查询的是()。
A、@Select
B、@Result
C、@One
D、@Many
正确答案:C

MyBatis中@Results注解可以用在三种关联查询方式中,其中@Result注解是@results的子元素;@One可以实现一对一关联查询;@Many可以实现一对多关联查询

3、在数据表employee中根据id删除员工信息,下列@Delete注解的写法正确的是()。
A、@Delete(“delete from employee where id = ?”)
B、@Delete(“delete from employee”)
C、@Delete(“delete from employee where id = #id”)
D、以上说法都不正确
正确答案:C

无解析

4、要求根据员工的id查找员工信息,下列使用@Select注解的代码书写正确的是()。
A、@Select(“select * from tb_worker where id = ?”)
B、@Select(“select * from tb_worker where id = #id”)
C、@Select(“select * from tb_worker where id = id”)
D、@Select(“select * from tb_worker where id = #id”)
正确答案:D

#是MyBatis提供的支持动态SQL的语法

5、下列选项中,使用@Select和@Param编写代码正确的是()。
A、@Select(“select * from tb_worker where id = #param01”)
Worker selectWorkerByIdAndName(@Param(“param01”) int id);
B、@Select(“select * from tb_worker where id = #param”)
Worker selectWorkerByIdAndName(@Param(“param01”) int id);
C、@Select(“select * from tb_worker where id = param01”)
Worker selectWorkerByIdAndName(@Param(“param01”) int id);
D、@Select(“select * from tb_worker where id = param01”)
Worker selectWorkerByIdAndName(@Param(“param01”) int id);
正确答案:A

无解析

6、关于@Insert注解的使用,下列代码书写正确的是()。
A、Insert(“insert into tb_worker(name,age,sex,worker_id)”
+“values(#name,#age,#sex,#worker_id)”)
int insertWorker(Worker worker);
B、@Insert(“insert into tb_worker(name,age,sex,worker_id)”
+“values(#name #age #sex #worker_id)”)
int insertWorker(Worker worker);
C、@Insert(“insert into tb_worker(name,age,sex,worker_id)”
+“values(#name,#age,#sex,#worker_id)”)
int insertWorker(Worker worker);
D、@Insert(“insert into tb_worker(name,age,sex,worker_id)”
+“values(name,age,sex,worker_id)”)
int insertWorker(Worker worker);
正确答案:C

无解析

二、多选题

7、下列关于@Results注解的属性说法正确的是()。
A、property属性用来指定关联属性
B、column属性用来指定关联的数据库表中的字段
C、one属性用来指定数据表之间属于哪种关联关系
D、以上说法都正确
正确答案:A,B,C,D

以上说法都正确

8、关于注解的说法,下列选项正确的是()。
A、@Select注解用于映射查询语句,其作用等同于XML配置文件中的<select>元素
B、@Insert注解用于映射插入语句,其作用等同于XML配置文件中的<insert>元素
C、@Update注解用于映射更新语句,其作用等同于XML配置文件中的<update>元素
D、@Delete注解用于映射删除语句,其作用等同于XML配置文件中的<delete>元素
正确答案:A,B,C,D

以上说法都正确

9、下列注解中,属于MyBatis常用注解的是()。
A、@Select注解
B、@Insert注解
C、@Update注解
D、@Delete注解
正确答案:A,B,C,D

以上说法都正确

三、判断题

10、在@Results注解中,只能包含一个@Result注解。
正确答案:错

可以包含多个的,@Result注解的作用是完成实体类中属性和数据表中字段的映射

11、在@Results注解中,可以包含多个@Result注解,一个@Result注解完成实体类中一个属性和数据表中一个字段的映射。
正确答案:对

无解析

12、在@Many注解中,select属性用于指定关联属性的值。
正确答案:对

无解析

13、MyBatis中,@Update注解的参数可以是一条插入语句,也可以是一条更新语句。
正确答案:错

@Update注解的参数是一条更新语句,参数是插入语句的注解为@Insert

14、MyBatis中,除了XML的映射方式,MyBatis还支持通过注解实现POJO对象和数据表之间的关系映射。
正确答案:对

无解析

15、MyBatis中使用注解进行删除时,一般将SQL语句直接写在接口上。
正确答案:对

无解析

16、MyBatis中,@Update注解用于映射更新语句,其作用等同于XML配置文件中的<update>元素。
正确答案:对

无解析

17、在数据库中,表与表之间的多对多关联关系通常使用一个中间表来维护。
正确答案:对

无解析

18、MyBatis中,核心配置文件中的内容的扫描方式是从上到下扫描。
正确答案:对

无解析

19、MyBatis的@Insert注解就是将SQL语句直接写在接口上,使得代码书写更加简单,减少了大量的XML文件的配置。
正确答案:对

无解析

20、MyBatis中,@Param注解的功能是指定SQL语句中的参数,通常用于SQL语句中参数比较多的情况。
正确答案:对

无解析

21、在@Insert注解中,value属性是可选的。
正确答案:错

value属性用于指定要执行的insert语句,是必须指定的

四、填空题

22、MyBatis中,@One注解的作用等同于XML配置文件中的_________元素。

<assocation>

23、MyBatis中,_________注解的作用是完成实体类中一个属性和数据表中一个字段的映射。

@Result

24、_________注解用于映射删除语句,其作用等同于XML配置文件中的<delete>元素。

@Delete

25、可以用于结果集映射的三大注解有@ResultMap、@Results和_________。

@Result

26、MyBatis中使用_________注解可以实现数据表的一对一关联查询。

@One

27、MyBatis使用_________注解实现数据表的一对多关联查询,它作用等同于XML配置文件中的<collection>元素。

@Many

28、MyBatis中,_________注解用于映射插入语句,其作用等同于XML配置文件中的<insert>元素。

@Insert

29、在@Many注解中,用于指定关联属性的值的属性是_________。

select

30、在@Result注解中,_________属性用来指定关联属性。

property

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

以上是关于MyBatis核心配置相关习题的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis注解开发相关习题

mybatis的入门

MyBatis学习--入门案例

MyBatis入门程序(基于XML配置)

MyBatis基本入门篇

mybatis各阶段的详解