迭代Ibatis中的对象列表

ced*_*ric 7 java sql ibatis

我有一个对象列表,我想迭代并访问ibatis sql中的特定字段.

防爆.

public Class Student
{
String id;
String name;
}
Run Code Online (Sandbox Code Playgroud)

我将作为参数传递一个Student对象列表(List(Student))
并进行迭代访问每个对象bean的id.我该怎么做呢?

Syl*_*lar 12

的foreach -tag是你在找什么.例:

<select id="selectPostIn" resultType="domain.blog.Post">
  SELECT *
   FROM POST P
   WHERE ID in
   <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
    #{item}
   </foreach>
</select>
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅用户指南,"动态sql"一章.

顺便说一句,iBatis不再开发并被冻结,它现在被称为"MyBatis",整个开发团队从Apache转移到 新的MyBatis家.


che*_*ine 6

一个简单的例子.

<select id="selectFewStudents" resultMap="MyMap" parameterClass="list">
    select * from student_table where student_id in
    <iterate open="(" close=")" conjunction=",">
       #[]#
    </iterate>
</select>
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅iBatis文档.

正如Sylar指出的那样,java等价物就是

<select id="selectFewStudents" resultType="MyMap">
  select * from student_table where student_id in
   <foreach item="currentRow" index="rowNum" collection="list" open="(" separator="," close=")">
    #{currentRow}
  </foreach>
</select>
Run Code Online (Sandbox Code Playgroud)

iBatis允许您在循环内使用变量项和索引.