扫码关注官方订阅号
比如有10条数据。是用for循环在程序里面一条一条地调用insert,还是其他方法?还有,for循环能保证事务么?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
1、批量插入可以同 union all 来连接,类似这样的INSERT INTO tbl_name (a,b,c)
select 1 as a, 2 as b, 3 as c from dual union all select 4, 5, 6 from dual union all select 7, 8, 9 from dual union all ....; 2、java里面操作,事务是你自己配置的,跟for循环无关,你可以每次插入都1个独立事务,也可以for完成后再1个事务
JDBC Batch Update
贴一个MyBatis中的使用方法
<insert id="batchInsert"parameterType="java.util.List"> INSERT INTO data (id, text, status) <foreach close=")"collection="list"item="item"index="index"open="("separator="union"> SELECT #{item.id,jdbcType=VARCHAR}, #{item.text,jdbcType=VARCHAR}, #{item.stauts,jdbcType=VARCHAR} FROM DUAL </foreach> </insert>
和for循环没有关系,一个connection里,开始beginTransaction结束commitTransaction就能保证事务了。
for
connection
beginTransaction
commitTransaction
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
1、批量插入可以同 union all 来连接,类似这样的
INSERT INTO tbl_name (a,b,c)
select 1 as a, 2 as b, 3 as c from dual union all
select 4, 5, 6 from dual union all
select 7, 8, 9 from dual union all
....;
2、java里面操作,事务是你自己配置的,跟for循环无关,你可以每次插入都1个独立事务,也可以for完成后再1个事务
JDBC Batch Update
贴一个MyBatis中的使用方法
和
for循环没有关系,一个connection里,开始beginTransaction结束commitTransaction就能保证事务了。