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核心配置相关习题的主要内容,如果未能解决你的问题,请参考以下文章