动态 SQL(2)

前面我们学习了使用动态 SQL 的 if、where、trim元素来处理一些简单查询操作,但对于一些 SQL 语句中含有 in 条件,需要迭代条件集合来生成的情况,我们就需要使用 foreach 标签来实现 SQL 条件的迭代。

MyBatis 入参为数组类型的 foreach 迭代

  foreach 主要用在构建 in 条件中,它可以在 SQL 语句中迭代一个集合。它的属性主要有:item、index、collection、 separator、close、open。

  foreach 的基本属性

    对于 SQL 条件循环(in 语句),需要使用 foreach 标签。

    item:表示集合中每一个元素进行迭代时的别名。

    index:指定一个名称,用于表示在迭代过程中,每次迭代到的位置。(可省略)

    open:表示该语句以什么开始(既然是 in 条件语句,所以必然是以 "(" 开始)。

    separator:表示在每次进行迭代之间以什么符号作为分隔符(既然是 in 条件语句,所以必然是以 "," 作为分隔符)。

    close:表示该语句以什么结束(既然是 in 条件语句,所以必然是以 ")" 结束)。

    collection:最关键并最容易出错的属性,需格外注意,该属性必须指定,不同情况下,该属性的值是不一样的。 主要有以下三种情况:

        ◆ 若入参为单参数且参数类型是一个 List 的时候,collection 属性值为 list。

        ◆ 若入参为单参数且参数类型是一个数组的时候, collection 属性值为 array。

        ◆ 若传入参数为多参数,就需要把它们封装为一个 Map 进行处理,collection 属性值为 map 中相应的 key。

  

猜你喜欢

转载自www.cnblogs.com/wxdestiny/p/9776199.html