批量插入数据使用的sql语句是:
insert into table (aa,bb,cc) values(xx,xx,xx),(oo,oo,oo)
SELECT
LAST_INSERT_ID()
insert into wd_solr
(fayu_id, tablename,
name,logo,description,section_no,look_count,favorite_count,create_uid,create_time,update_time,timestamp)
values
(
#{wdSolr.fayuId},#{wdSolr.tablename},#{wdSolr.name},#{wdSolr.logo},
#{wdSolr.description},#{wdSolr.sectionNo},#{wdSolr.lookCount},#{wdSolr.favoriteCount},
#{wdSolr.createUid},#{wdSolr.createTime},#{wdSolr.updateTime},#{wdSolr.timestamp}
)
批量更新数据使用的sql语句是:
UPDATE table
SET aa = CASE id
WHEN 1 THEN 'oo'
WHEN 2 THEN 'pp'
WHEN 3 THEN 'qq'
END
,SET bb = CASE id
WHEN 1 THEN 'xx'
WHEN 2 THEN 'yy'
WHEN 3 THEN 'zz'
END
WHERE id IN (1,2,3)
上面这一条mysql语句可以更新多条记录,mybatis中mapper.xml的代码如下:
update wd_solr set
name =
when #{wdSolr.id} then
#{wdSolr.name}
,logo =
when #{wdSolr.id} then
#{wdSolr.logo}
,timestamp =
when #{wdSolr.id} then #{wdSolr.timestamp}
where id in
#{wdSolr.id}
trim代替where/set标签
trim 是更灵活用来去处多余关键字的标签,它可以用来实现 where 和 set 的效果。原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/mybatis/mybaits_trim.html
trim 代替 set
UPDATE user
username = #{username},
sex = #{sex},
birthday = #{birthday},
WHERE user_id = #{user_id}
trim (对包含的内容加上 prefix,或者 suffix 等,前缀,后缀)
trim 元素的主要功能是可以在自己包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是 prefix 和 suffix;可以把包含内容的首部某些内容覆盖,即忽略,也可以把尾部的某些内容覆盖,对应的属性是 prefixOverrides 和 suffixOverrides;正因为 trim 有这样的功能,所以我们也可以非常简单的利用 trim 来代替 where 元素的功能。