Mybatis动态SQL习题练习

Mybatis动态SQL习题练习

选择题
1.SQL语句中,where后直接跟and,这在运行时肯定会报()错误。
A.SQL语法

B.无效字符

C.参数异常

D.MySQL版本

答案:A

2.当有多个选择的情况是,值需要从多个选项中选择一个去执行时,可以使用的动态SQL元素是()

A.

B .

C.

D.

答案:B

3.以下不属于元素中使用的属性的是()
A.separator

B.collection

C.current

D.item

答案:C

4.以下关于元素中使用的几种属性的描述错误的是()

A.item:配置的是循环中当前的元素

B.index:配置的是当前元素在集合的位置下标

C.collection:配置的是传递过来的参数类型,它可以是一个array、list(或collection)、Map集合的键、POJO包装类中数组或集合类型的属性名等

D.separator:配置的是各个元素的间隔符

答案:C

5.以下关于MyBatis的元素的使用及说法正确的是()

A 元素主要用于更新操作,其主要作用是在动态包含的SQL语句前输出一个SET关键字,并将SQL语句中最后一个多余的逗号去除

B.使用MyBatis的元素来更新操作时,前端需要传入所有参数字段,否则未传入字段会默认设置为空

C.在映射文件中使用元素组合进行update语句动态SQL组装时, 元素内包含的内容可以都为空,元素会进行判断处理

D.在映射文件进行更新操作时,只需要使用元素就可以进行动态SQL组装

答案:A

6.以下有关MyBatis动态SQL中的主要元素说法错误的是()

A.用于单条件分支判断

B.用于多条件分支判断

C.循环语句,常用于in语句等列举条件中

D.从OGNL表达式中创建一个变量,并将其绑定到上下文,只于模糊查询的sql中

7.MyBatis动态SQL中的主要元素包含有()。

A.

B.

C.

D.

答案:ABCD

8.以下关于MyBatis动态SQL中元素元素说法错误的是()

A.使用元素替换条件“where 1=1”后,既保证了where后面的条件成立,又避免了where后面第一个词是and或者or之类的关键词

B.使用元素对“where 1=1”条件进行了替换,只用当元素的test属性成立才会在拼接SQL中加入where关键字,否则将不会添加

C.元素和元素功能相同,都是对对“where 1=1”条件进行替换,并去除多余字符

D.以上说法都正确

答案:BCD

10.关于元素的使用及说法正确的是()

A.在MyBatis中,元素是最常用的判断语句,它类似于Java中的if语句,主要用于实现某些简单的多条件分支判断

B.使用元素的test属性可以对传入参数进行条件判断,如果传入的条件成立就进行动态SQL组装

C.元素可以出现多个

D.以上说法都正确

答案:BC

判断题

1.MyBatis动态SQL中元素就是为了去除组装的SQL语句中第一个多余的and或or。

A 正确
B 错误

答案:B

2.使用了元素进行SQL拼接,只要元素中的条件为真,就会进行组装。

A 正确
B 错误

答案:B

3.在使用元素时,只要test属性中的表达式为true,就会执行元素中的条件语句。

A 正确
B 错误

答案:A

4.可以将任何可迭代对象(如列表、集合等)和任何的字典或者数组对象传递给作为集合参数()。

A 正确
B 错误

答案:A

5.在MyBaits映射文件中使用元素组合进行update语句动态SQL组装时,如果元素内包含的内容都为空,则会出现SQL语法错误()。

A 正确
B 错误

答案:A

6.MyBaits中对原始SQL中的“where 1=1”的条件可以使用元素组合进行替换()。

A 正确
B 错误

答案:A

7.MyBaits中元素的作用是去除一些特殊的字符串,它的prefix属性代表的是语句的前缀,而prefixOverrides属性代表的是需要去除的哪些特殊字符串()。

A 正确
B 错误

答案:A

8.MyBaits中的元素用于多条件分支判断,当元素中的条件为真,就进行动态组装元素内的SQL片段,以此类推()。

A 正确
B 错误

答案:B

9.在MyBatis中元素用于单条件分支判断,当某个的test属性判断成立,然后跳过其他元素进行动态SQL组装()。

A 正确
B 错误

答案:B

10.在MyBatis中元素用于单条件分支判断,当某个的test属性判断成立,然后跳过其他元素进行动态SQL组装()。

A 正确
B 错误

答案:B

11.元素中value的属性值就是拼接的查询字符串,即必须与传递的参数变量名一致,如username()

A 正确
B 错误

答案:B

12.MyBatis提供了元素可以解决模糊查询时SQL注入问题,且不会影响数据库移植()

A 正确
B 错误

答案:A

13.当前端传递参数名为ids的封装id的集合参数时,元素的collection属性值需要跟参数名ids对应()

A 正确
B 错误

答案:B

14.MyBatis中的元素可以用于对数组和集合循环遍历,批量执行SQL操作()

A 正确
B 错误

答案:A

15.使用MyBatis的元素来更新操作时,前端需要传入所有参数字段,否则未传入字段会默认设置为空()

A 正确
B 错误

答案:B

16.在MyBatis中,元素是最常用的判断语句,它类似于Java中的if语句,主要用于实现某些简单的条件选择()

A 正确
B 错误

答案:A

简答题

1.请简述MyBatis动态SQL中的主要元素及说明。
MyBatis动态SQL中的主要元素及说明如下:

答案::判断语句,用于单条件分支判断;
():相当于Java中的switch…case…default语句,用于多条件分支判断; :辅助元素,用于处理一些SQL拼装、特殊字符问题;
:循环语句,常用于in语句等列举条件中;
:从OGNL表达式中创建一个变量,并将其绑定到上下文,常用于模糊查询的sql中。

2.请简述MyBaits映射文件中元素的使用。
答案:
先使用元素的name属性定义一个变量,元素中value的属性值就是拼接的查询字符串,如username;然后在SQL语句中,直接引用元素的name属性值即可进行动态SQL组装。

3.请简述在使用时,collection属性需要注意的几点。

答案:

  1. 如果传入的是单参数且参数类型是一个数组或者List的时候,collection属性值分别为array和list(或collection); 2. 如果传入的参数是多个的时候,就需要把它们封装成一个Map了,当然单参数也可以封装成Map集合,这时候collection属性值就为Map的键。 3. 如果传入的参数是POJO包装类的时候,collection属性值就为该包装类中需要进行遍历的数组或集合的属性名。

老师布置的练习作业,有错误欢迎大家指出

你可能感兴趣的:(Mybatis动态SQL习题练习)