Выполните итерации списка Объектов в Ibatis

У меня есть список объекта, где я хочу выполнить итерации и получить доступ к конкретному полю в ibatis sql.

Напр.

public Class Student
{
String id;
String name;
}

Я передам как параметр Список Студенческого объекта (Список (Студент))
и сделайте повторение, получающее доступ к идентификатору для каждого объектного боба. Как я делаю это?

7
задан bernie 29 July 2010 в 06:55
поделиться

2 ответа

Тег 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 .

12
ответ дан 6 December 2019 в 08:41
поделиться

Простой пример.

<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 позволяет вам изменять элемент и индекс, которые вы можете использовать внутри цикла.

6
ответ дан 6 December 2019 в 08:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: