如果业务中有几百条数据的插入,用for循环一个一个插入效率太慢,而且事务处理复杂,下面是MySQL和Oracle两个版本的批量插入方法:
MySQL:
<insert id="insertList" parameterType="java.util.List">
INSERT INTO
`t_user`
( `id`,`name`, `password`, `phone`, `email`, `create_time` )
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(
(SELECT REPLACE(UUID(), '-', '') AS id),
#{item.name,jdbcType=VARCHAR},
#{item.password,jdbcType=VARCHAR},
#{item.phone,jdbcType=VARCHAR},
#{item.email,jdbcType=VARCHAR},
NOW()
)
</foreach>
</insert>
Oracle:
<insert id="insertList" parameterType="java.util.List">
INSERT INTO
`t_user`
( `id`,`name`, `password`, `phone`, `email`, `create_time` )
<foreach collection="list" item="item" index="index" separator="union all">
select
sys_guid(),
#{item.name,jdbcType=VARCHAR},
#{item.password,jdbcType=VARCHAR},
#{item.phone,jdbcType=VARCHAR},
#{item.email,jdbcType=VARCHAR},
SYSDATE
from dual
</foreach>
</insert>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/71402.html