前言
相信大家在面试的时候,如果面试官问有关mybatis框架的问题时,经常会遇到这个问题,“说下动态sql”,而大部分人还是能够轻而易举的把动态sql介绍清楚的,其实mybatis的sql一般都是写在mapper中(也可以用注解方式),那么在遇到一些复杂的sql,比如需要加一些判断条件或者是循环之类的,那么这个时候,mybatis框架为大家提供了一些解决上述问题的标签,来供大家进行编写,而这些标签分别是if、where、choose、trim、set、foreach、bind、insert。而我们今天主要详细讲解的是foreach标签,这里边还是有很多的细节需要大家注意的。
一、foreach标签
在做mybatis的mapper.xml文件的时候,我们时常用到这样的情况:动态生成sql语句的查询条件,这个时候我们就可以用mybatis的foreach了
二、foreach标签属性
foreach元素的属性主要有item,index,collection,open,separator,close。
item:集合中元素迭代时的别名,该参数为必选。
index:在list和数组中,index是元素的序号,在map中,index是元素的key,该参数可选
open:foreach代码的开始符号,一般是(和close=")"合用。常用在in(),values()时。该参数可选
separator:元素之间的分隔符