文章目录
一、单选题
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
如有错误,欢迎指正!!!
版权归原作者 a-oyi 所有, 如有侵权,请联系我们删除。