我想知道是否可以将两个或更多参数传递给mybatis SqlSession插入方法,而无需为此创建新类。我知道resultType =“hashmap”可以用来从select中返回数据,但是如何传递数据呢?还想知道为什么不为多个参数使用varargs插入方法。
提前致谢 Remis B
答案 0 :(得分:9)
有几种不同的方法。
<强>映射强>
如果您使用我推荐的Mapper类,您可以执行类似的操作。
interface Mapper
{
void insertSomeObject(@Param("a") Integer a, @Param("b") Integer b);
}
然后在您的xml映射器中,您可以使用#{a}
和#{b}
来引用您的参数。
<强> HashMap中强>
您可以将参数包装在HashMap中。
HashMap map = new HashMap();
map.put("a", 1);
map.put("b", 2);
然后将哈希映射传递给SQL会话插入,并使用键值引用参数。
session.insert("myInsertStatment", map);
任何收藏
我不确定您的确切需求,但如果您有任意数量的整数传递给insert语句,只需传递List或任何Collection。
interface Mapper
{
void insertSomeObject(@Param("integers") Collection<Integer> integers);
}
然后在您的xml中,您可以使用for each生成动态xml以满足您的需求。
<foreach collection="integers" item="integer" open="(" close=")" separator=",">
#{integer}
</foreach>