insert
操作,用foreach
标签做循环插入操作,两种不同的写法,注意foreach位置不同。
@Insert(" <script> "
+ " <if test = 'list != null and list.length > 0' >"
+ " <foreach collection='list ' item='val' index='index' separator=';'>"
+ " insert into table(id, bm, mc, jgbm) values "
+ " <![CDATA[ (#{id}, #{val.bm}, #{val.mc}, #{jgbm}) ]]>"
+ " </foreach>"
+ " </if>"
+ " </script>")
void insData(AbcBean bean);
@Insert("<script> "
+ " insert into tms_rc_lkxx(id,rcid,jgbm) values "
+ " <foreach collection='param1' item='item' index='index' separator=','> "
+ " <![CDATA[ (f_newid(),#{item.rcid},#{param2.jgbm}) ]]> "
+ " </foreach> "
+ "</script> ")
int addLkxx(List<LkblBean> param1,LkblczBean param2);
select
操作,用foreach
配合in
语句,查询bm1在jsidList里的数据
@Select("<script>"
+ " <if test = 'jsidList != null and jsidList.size > 0' >"
+ " select bm fsdq "
+ " from tms_jg_bmb "
+ " where jgbm like #{zxbm}||'%' and bm1 in"
+ " <foreach collection='jsidList' item='val' index='index' open='(' separator=',' close=')'>"
+ " #{val}"
+ " </foreach>"
+ " </if>"
+ "</script>")
String getFsdq(@Param("zxbm") String zxbm, @Param("jsidList") List<String> jsidList);
update
操作,使用foreach
循环更新list里的对象。
@Update("<script>" +
" <foreach collection='list' item='item' index='index' separator=';' " +
" open=\"\" close=\"\"> " +
" update rctable set rczt = #{item.bglx}" +
" where rcid = #{item.rcid} " +
" </foreach> " +
"</script>")
void updateRcxxzt(List<RcztBgBean> list);
update
操作,使用if
判断字段是否需要更新
@Update("<script> "
+ " update lkxx "
+ " <trim prefix='set' suffixOverrides=','> "
+ " <if test='slklx != null and \"\" != slklx'> lklx=#{slklx}, lklxmc=#{slklxmc}, </if>"
+ " <if test='slkzksj != null and \"\" != slkzksj'> zksj=to_timestamp(#{slkzksj}, 'yyyy-MM-dd'), </if>"
+ " </trim>"
+ " where rcid = #{rcid} "
+ "</script>")
void xglkxx(LkxxBean bean);