ibatis 标签

标签以一个集合或数组类型的特性作为其property属性值,ibatis通过遍历这个集合(数组)来从一组中重复产生某种sql小片段。这些小片段以conjunction属性值作为分隔符连接起来,从而形成一个有意义的sql语句片段,open属性值将作为所呈现的值列表的前缀,close属性值将作为所呈现的值列表的后缀,最终动态形成一个完整合法的sql。


标签属性

property(必须的)包含列表的参数的特性。

prepend(可选的)该值用于作为前缀附加到标签的结果内容体前。只有在以下3种情况下,prepend值才不会被加为前缀:(a)当标签的结果内容体为空时;(2)如果该标签第一个产生内容体,并且它被嵌套在一个removeFirstPrepend属性被设置为true的父标签时;(c)如果此标签是跟在prepend属性取值非空的标签后的第一个生成内容体的标签。

open(可选的)该值用于作为前缀加到标签的结果内容体前。如果结果内容体前为空,open值将不会被附加到其前面。open值将在prepend属性值被添加前缀之前先被添加前缀。例如,假设prepend=“or” 而open=“(”,则最终得到的组合前缀将会是“or(“。

close(可选的)该值用于作为后缀附加到标签的结果内容体后,如果结果内容体为空,则close值将不起作用。

conjunction(可选的)该值用于连接ibatis遍历集合(数组)时重复产生那些sql小片段

removeFirstPrepend(可选的)该值用于决定第一个产生内容的嵌套子标签是否移除其prepend值。


如何使用标签来为sql语句构建更加复杂的where字句

示例:

。。。

。。。


上例中,我们创建了一个select语句,然后遍历一组产品类型(product type) 以为其构造了一个更加复杂的过滤器。

你可能感兴趣的:(ibatis 标签)