插入
通过iterate标签,conjunction指定iterate标签中语句之间的分隔符,books[]代表迭代时list中的元素。
<insert id="addBooks" parameterClass="java.util.List">
<![CDATA[ INSERT INTO book(authorId, bookName,price,shelve) VALUES ]]>
<iterate conjunction =",">
<![CDATA[
(#books[].authorId#,#books[].bookName#,#books[].price#,#books[].shelve#)
]]>
</iterate>
</insert>
@Override
public void addBooks(List<Book> books) throws Exception {
getSqlMapClient().insert("addBooks", books);
}
删除
直接传入字符串即可。
<statement id="delBooksByAuthorIds" parameterClass="java.lang.String">
DELETE FROM book where authorId in ($ids$)
</statement>
@Override
public void delBooksByAuthorIds(String ids) throws Exception {
getSqlMapClient().delete("delBooksByAuthorIds", ids);
}
更新
<update id="updateBooks" parameterClass="java.util.List">
begin
<iterate conjunction="">
update book set shelve=#books[].shelve#
where id = #books[].id#;
</iterate>
end;
</update>
@Override
public void updateBooks(List<Book> books) throws Exception {
getSqlMapClient().update("updateBooks", books);
}