Существует несколько различных подходов.
Mapper
Если вы используете класс Mapper, который я рекомендовал бы, вы могли бы сделать что-то вроде этого.
interface Mapper
{
void insertSomeObject(@Param("a") Integer a, @Param("b") Integer b);
}
Затем в XML Mapper вы можете использовать #{a}
и #{b}
ссылаться на ваши параметры.
HashMap
Вы можете обернуть параметры в HashMap.
HashMap map = new HashMap();
map.put("a", 1);
map.put("b", 2);
Затем передайте карту хэша в SQL-сессию и используйте значение ключа для задания параметров.
session.insert("myInsertStatment", map);
Любая коллекция
Я не уверен в ваших точных потребностей, но если у вас есть произвольное количество целых чисел, чтобы перейти к утверждению вставки, просто передать список, или любой коллекции.
interface Mapper
{
void insertSomeObject(@Param("integers") Collection<Integer> integers);
}
Затем в вашем xml вы можете использовать для каждого для создания динамического xml в соответствии с вашими потребностями.
<foreach collection="integers" item="integer" open="(" close=")" separator=",">
#{integer}
</foreach>
Спасибо, что очень помогает. Если я прав, это не упоминается в документации. Вероятно, я должен был взглянуть на источник. :). Еще раз спасибо. –