У меня есть список объекта, где я хочу выполнить итерации и получить доступ к конкретному полю в ibatis sql.
Напр.
public Class Student
{
String id;
String name;
}
Я передам как параметр Список Студенческого объекта (Список (Студент))
и сделайте повторение, получающее доступ к идентификатору для каждого объектного боба. Как я делаю это?
Тег foreach - это то, что вы ищете. Пример:
<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>
См. руководство пользователя для получения дополнительной информации, глава «динамический 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>
Дополнительные сведения см. В документации iBatis .
Как указал Сайлар, эквивалентом в 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>
. IBatis позволяет вам изменять элемент и индекс, которые вы можете использовать внутри цикла.