Как использовать В пункте в iBATIS?

Хотя нет существенной разницы, как упоминалось в других статьях, общая причина использования for (;;) вместо while (1) состоит в том, что инструменты статического анализа (и некоторые компиляторы с определенными уровнями предупреждений) часто жалуются на цикл while. 114]

Goto немного неприятен, но должен генерировать тот же код, что и остальные. Лично я придерживаюсь for (;;) (чтобы Линт был доволен), но у меня нет проблем с while (1).

17
задан guerda 28 October 2009 в 14:59
поделиться

4 ответа

Вот сообщение в блоге, которое отвечает на ваш вопрос:

iBatis: Поддержка параметра массива или списка с ключевым словом SQL IN

<select id="select-test" resultMap="MyTableResult" parameterClass="list">
select * from my_table where col_1 in
  <iterate open="(" close=")" conjunction=",">
   #[]#
  </iterate>
</select>

А в Java вы должны передать java.util.List. Например,

List<String> list = new ArrayList<String>(3);
list.add("1");
list.add("2");
list.add("3");
List objs = sqlMapClient.queryForList("select-test",list);
31
ответ дан 30 November 2019 в 10:58
поделиться

Как насчет

<select id="foo" parameterClass="Quuxly" resultClass="Flobitz">
    select * from table
    <dynamic prepend="where col1 in ">
        <iterate property="list_of_values" open="('" close="')" conjunction=",  ">
            #list_of_values[]#
        </iterate>
    </dynamic>
</select>
12
ответ дан 30 November 2019 в 10:58
поделиться

Или:

<select id="select-test" resultMap="MyTableResult" parameterClass="list"> 
 select * from table where
 <iterate property="list" conjunction="OR">
  col1 = #list[]#
 </iterate>
</select>
4
ответ дан 30 November 2019 в 10:58
поделиться

Вы можете использовать это так:

<select id="select-test" resultMap="MyTableResult" >
select * from my_table where col_1 in
 $listOfValues$
</select>

используйте $ в операторе IN.

-1
ответ дан 30 November 2019 в 10:58
поделиться
Другие вопросы по тегам:

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