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