一、批量新增
dao层:
boolean insertBatchDelegation(List list);
xml层:
insert into act_delegation
(
act_name
,act_key
,from_user_id
,from_user_name
,to_user_id
,to_user_name
,start_date
,end_date
,gmt_create
)
values
(
#{item.actName}
,#{item.actKey}
,#{item.fromUserId}
,#{item.fromUserName}
,#{item.toUserId}
,#{item.toUserName}
,#{item.startDate}
,#{item.endDate}
,now()
)
另外一种写法: 特别注意separator的值,上面的方法是separator=",";下面的方法是separator=";"
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3310/erp-zyjsgx-v2?allowMultiQueries=true
insert into act_delegation
(
act_name
,act_key
,from_user_id
,from_user_name
,to_user_id
,to_user_name
,start_date
,end_date
,gmt_create
)
values
(
#{item.actName}
,#{item.actKey}
,#{item.fromUserId}
,#{item.fromUserName}
,#{item.toUserId}
,#{item.toUserName}
,#{item.startDate}
,#{item.endDate}
,now()
)
二、批量修改(也是两种写法,同上不再展示)
dao层:
int updatePdBatch(List> list);
xml层:
update erp_jiagongclzkc
cailiaosl = ${item.cailiaosl}
, xiugairid = #{item.xiugairid}
, xiugairxm = #{item.xiugairxm}
, xiugaisj = NOW()
, xiugairbmid = #{item.xiugairbmid}
, xiugairbmmc = #{item.xiugairbmmc}
, xiugairgsid = #{item.xiugairgsid}
, xiugairgsmc = #{item.xiugairgsmc}
where cailiaobm = #{item.cailiaobm}
AND chuangjianrgsid = #{item.chuangjianrgsid}
三、存在则更新,不存在则插入(也是两种写法,同上不再展示)
dao层:
int inserOrUpdateBatch(List> list);
xml层:
INSERT INTO erp_jiagongclzkc
(
fenleiid
, fenleimc
, cailiaoid
, cailiaobm
, cailiaomc
, guigexh
, jiliangdw
, cailiaosl
, beizhu
, chuangjianrid
, chuangjianrxm
, chuangjiansj
, chuangjianrbmid
, chuangjianrbmmc
, chuangjianrgsid
, chuangjianrgsmc
, xiugairid
, xiugairxm
, xiugaisj
, xiugairbmid
, xiugairbmmc
, xiugairgsid
, xiugairgsmc
, cailiaoyl
)
VALUES
(
#{item.fenleiid}
, #{item.fenleimc}
, #{item.cailiaoid}
, #{item.cailiaobm}
, #{item.cailiaomc}
, #{item.guigexh}
, #{item.jiliangdw}
, #{item.cailiaosl}
, #{item.beizhu}
, #{item.chuangjianrid}
, #{item.chuangjianrxm}
, NOW()
, #{item.chuangjianrbmid}
, #{item.chuangjianrbmmc}
, #{item.chuangjianrgsid}
, #{item.chuangjianrgsmc}
, #{item.xiugairid}
, #{item.xiugairxm}
, NOW()
, #{item.xiugairbmid}
, #{item.xiugairbmmc}
, #{item.xiugairgsid}
, #{item.xiugairgsmc}
, #{item.cailiaoyl}
)
ON DUPLICATE KEY UPDATE
cailiaosl = values(cailiaosl) + values(cailiaoyl)
, xiugairid = values(xiugairid)
, xiugairxm = values(xiugairxm)
, xiugaisj = values(xiugaisj)
, xiugairbmid = values(xiugairbmid)
, xiugairbmmc = values(xiugairbmmc)
, xiugairgsid = values(xiugairgsid)
, xiugairgsmc = values(xiugairgsmc)
特别说明
ON DUPLICATE KEY UPDATE
cailiaosl = values(cailiaosl) + values(cailiaoyl)
values(***) 是指 如果数据库表中已存在新插入的这条数据 将这条旧数据的cailiaosl 更新为valuse中的数据
KEY 必须是主键或者UNIQUE 索引
标签:name,批量,xiugairbmid,item,values,user,mybatis,cailiaosl,数据
来源: https://www.cnblogs.com/EarlyBridVic/p/13044647.html