- mapper写法:
<update id="updateOrderStateByOrderId" parameterType="java.util.List">
update t_replace_order set
Forder_state =
<foreach collection="list" item="item" index="index" separator=" " open="case Forder_id" close="end">
when #{item.orderId,jdbcType=BIGINT} then #{item.orderState,jdbcType=INTEGER}
</foreach>
,Forder_state_desc =
<foreach collection="list" item="item" index="index" separator=" " open="case Forder_id" close="end">
when #{item.orderId,jdbcType=BIGINT} then #{item.orderStateDesc,jdbcType=VARCHAR}
</foreach>
,Fmodify_time=
<foreach collection="list" item="item" index="index" separator=" " open="case Forder_id" close="end">
when #{item.orderId,jdbcType=BIGINT} then #{item.modifyTime,jdbcType=TIMESTAMP}
</foreach>
where Forder_id in
<foreach collection="list" index="index" item="item" separator="," open="(" close=")">
#{item.orderId,jdbcType=BIGINT}
</foreach>
</update>
//这句sql的意思是,更新Forder_state字段,如果Forder_id=#{item.orderId,jdbcType=BIGINT} 则Forder_state的值为
//#{item.orderState,jdbcType=INTEGER}更多Forder_id和需要更新的字段就以此类推
- dao接口
//Map中key对应mysql中取值字段,Map中value对应取值字段的值,把map看做一个bean更加好理解
Integer updateOrderStateByOrderId(@Param("list")List<Bean> list);
- 逻辑调用
List<Bean> list = //Bean集合
//批量更新
Integer num = updateOrderStateByOrderId(list);
- 对应mysql中写法:
UPDATE ticket_db.t_replace_order
SET Forder_state =
CASE
Forder_id
WHEN '1' THEN
0
WHEN '2' THEN
2
WHEN '3' THEN
1
END
WHERE
Forder_id IN ( '1', '2', '3' )
//这句sql的意思是,更新Forder_state字段,如果Forder_id=1 则Forder_state的值为0,
//如果Forder_id=2 则dingdan的值为2,如果Forder_id=3 则Forder_state的值为1,更多Forder_id就以此类推
批量插入
int insertMore(List<Fenci> record);
<insert id="insertMore" parameterType="java.util.List">
insert into t_fenci ( Fword, Ftype,
Fto_id, Flocation, Fnum,
Fword_type,Fstart_offset, Fend_offset,
Fcreate_time, Fmodify_time)
values
<foreach collection ="list" item="reddemCode" index= "index" separator =",">
(
#{reddemCode.word}, #{reddemCode.type},
#{reddemCode.toId},
#{reddemCode.location},
#{reddemCode.num}, #{reddemCode.wordType},#{reddemCode.startOffset},#{reddemCode.endOffset},
#{reddemCode.createTime},#{reddemCode.modifyTime}
)
</foreach >
</insert>