我有一个对象列表,我想迭代并访问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家.
一个简单的例子.
<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允许您在循环内使用变量项和索引.