Mybatis持久层框架练习题+答案

1、 在MyBatis中,诸如<if>标签,需要添加值为true的表达式、需要考虑SQL片段前的逻辑运算关键字。所以MyBatis提供了更智能化的标签,比如使用<where>标签时,MyBatis会智能处理跟在”where”条件后的输出语句,会智能对or或and开头的进行忽略,那么智能标签还有( )

A:<if>

B:<set>

C:<choose>

D:以上全是

2、 下面关于MyBatis缓存技术的理解正确的是::( )

A:一级缓存是基于 PerpetualCache(mybatis自带)的 HashMap 本地缓存,作用范围为session,所以当session commit或close后,缓存就会被清空

B:二级缓存默认也是基于 PerpetualCache,但是可以为其制定存储源,比如ehcache

C:一级缓存缓存的是SQL语句,而二级缓存缓存的是结果对象

D:以上都正确

3、 Select name(输出值) from stu where id=#{id}(输入参数) 以下说法正确的是( )

A:where子句中的#{}表示一个占位符

B:映射语句必须要有输入和输出部门

C:如果select语句有where子句的话,就是没有输入

D:如果语句是更新类型的,一般都有输出部分

4、 关于<where>标签说法有误的是:( )

A:<where>主要用于动态SQL查询条件

B:<where>元素会自动将其后第一个条件的and或or给忽略掉

C:<where>元素主要用来简化SQL语句中where条件判断的书写

D:<where>元素在内部标签没有返回内容时也会在动态语句上插入where条件语句

5、 对下面代码说法有误的是
<if test=”name!=null”> AND a.name=#{name}</if>( )

A:这个代码用的是<if>元素

B:当属性test的条件成立时,标签的内容会追加到SQL语句中

C:如果条件不成立,标签内容也会追加,只是不执行罢了

D:一般的,我们都在<if>之前添加“1=1”这么一个表达式

6、 关于SQL映射语句,下列说法错误的是:( )

A:MyBatis框架的核心功能就在与SQL语句的映射

B:一个典型的SQL映射语句要有输出值和输入参数

C:在SQL映射语句中,想要表示一个占位符,可以用{#}

D:如果select语句不带where子句的话,就是没有输入,如果语句是更新类型的,一般都没有输出部分

7、 下面关于MyBatis动态SQL阐述有误的是:( )

A:动态SQL常见的场景要数查询条件是确定的,因为用户选择的查询条件是已知的

B:SQL语句需要程序通过查询条件的选择进行动态组装和生成,这就是动态SQL

C:MyBatis通过使用<if>,<choose>,<where>等元素提供了对构造动态SQL语句的高级支持

D:MyBatis的<if>元素可以有效地解决用字符串拼接SQL语句做法的多种缺点

8、 对SQL语句执行结果和实体数据的映射关系是单独的映射文件来配置的。关于映射文件结构说法错误的是:( )

A:映射文件中,根元素是<mapper>元素,它有一个namespace属性,用来管理SQl映射语句的名称,在同一个名字空间中,映射语句不能重名。namespace属性的取值是接口的全限定名

B:SQL映射语句一般在WHERE子句的条件中,用#{}符号表示,表示一个占位符

C:映射语句中必须有输入和输出部分

D:为了区分SQL语句的语义,MyBatis提供了<select>、<insert>、<delete>、<update>四类SQL操作

9、 阅读以下配置文件代码,以下说法错误的是( )
<mapper namespace=”com.ysdit.mybatis.dao.IMemberMapper”>
<select id=”countAll” resultType=”int”> select count(*) from t_stu; </select>
......
</mapper>

A:这不是对SQL语句执行结果和实体数据的映射关系的映射文件,只是一个普通的.xml文件

B:它的根元素是<mapper>元素

C:namespace属性是用来管理SQL映射语句的名称,在同一个命名空间中,映射语句不能重名

D:这里namespace属性的取值是接口的全限定名

10、 <where>标签主要用来简化SQL语句中where语句的书写,与之类似的标签()可以简化SQL语句中的某些关键字:( )

A:<trim>

B:<set>

C:<if>

D:<foreach>

11、 在Mybatis中,配置结果映射时,使用()标签实现一对多的关联:( )

A:many-one

B:one-many

C:association

D:collection

12、 在MyBatis的映射文件中,可以对数据进行各种读写操作,下面操作正确的是:( )

A:在<create>中创建数据库

B:在<create>中用 cut -user -pwd切换用户

C:在<update>中修改数据

D:在<insert>中查询数据

13、 关于下列代码说法有误的是:( )

A:create table abc( ****,****); 创建一个表abc

B:Alter table *** add primary key(**) 添加一个主键

C:mysql -u root -p111 进入mysql数据库

D:Select a,b,c from a where a in(select d from b) 使用外连接查询

14、 根据存储模型划分,下列有关数据库类型说法正确的是:( )

A:Object-oriented Database 面向对象数据库

B:Hierarchical Database 网状数据库

C:Network Database 关系数据库

D:商业应用中主要是面向对象数据库

15、 有关于<properties>元素的说法正确的是:( )
A:<properties>用于读取属性文件

B:当数据源信息独立出来后,可在mybatis-config.xml中配置<properties>

C:<properties>元素的resource属性指定的是属性文件所在的位置

D:以上说法都正确

16、 在一级缓存中,不能让会话对象清空的是:( )

A:Sqlsession执行commit操作(执行插入、更新、删除)

B:Sqlsession.close()

C:Sqlsession sqlsession=sqlSessionFactory.openSession()

D:MyBatisUtil.getSqlSession().clearCache()

17、 MyBatis编程除了映射文件外,还需要掌握几个关键接口或类的使用,下列选项不是MyBatis的接口或类是:( )

A:SqlSession

B:SqlSessionFactory

C:MySqlSession

D:Resources

18、 下列哪些属于dataSource的类型:( )

A:UNPOOLED

B:POOLED

C:JNDI

D:以上都是

19、 关于Mybatis的优点,说法错误的是:( )
A:简单且功能强

B:开发人员能够完全控制所执行的SQL语句

C:容易维护和修改

D:自动化的ORM框架,便于面向对象开发

20、 下列对于缓存的理解正确的是:( )

A:MyBatis本地缓存分为一级缓存和二级缓存。一级缓存(PerpetualCache)是与SqlSession对象绑定的

B:二级缓存是跨多个会话的,MyBatis内置了一个二级缓存(PerpetualCache),可以直接使用

C:MyBatis默认是开启二级缓存的,可以通过全局参数cacheEnabled进行开关

D:以上描述都对

21、 数据源的核心是数据库连接池,dataSource的类型有三种,下面有关说法错误的是:( )

A:UNPOOLED类型说明数据库连接对象不采用池化技术,每次数据库会话操作都需要新建和关闭数据库连接

B:POOLED类型采用数据库连接池

C:JNDI类型说明数据库连接池不由MyBatis来控制管理,交给中间件服务器(如Tomcat)管理

D:数据库连接对象池化并不能提高系统效率,只是对连接对象的初始化、新增、释放等操作进行统一管理

22、 MyBatis trim标签使用中,对下面属性说明有误的是:( )

A:prefix:前缀要替换的内容

B:suffix:后缀要替换的内容

C:prefixOverridex:前缀要替换的内容

D:suffixOverridex:后缀要判断的内容

23、 在接口映射文件中,配置结果映射需要用到的元素有:( )
A:<resultMap>

B:<result>

C:<id>

D:以上都对

24、 MyBatis配置log4j日志信息正确的是:( )

A:定义日志文件

B:配置日志信息

C:添加log4j-1.2.17.jar

D:以上都是

25、 有关属性文件的说法错误的是:( )

A:采用xml文件相比属性文件的好处是配置信息独立一份,但是属性文件加密比xml文件更简单

B:属性文件的内容是以”=”号进行分割的“名值对”

C:把数据源信息独立出来之后,可以在mybatis-config.xml文件中利用<propertis>配置读取属性文件

D:利用<propertis>读取属性时,可以通过${***}表达式语法读取属性内容

单选题

1. B 2. D 3.A 4. D 5. C

6. C 7. A 8.C 9.A 10.B

11. D 12. C 13.D 14. A 15. D

16.C 17.C 18.D 19.D 20.D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_36581372

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值