mybatis 批量插入insert、更新update java代码实现

本文介绍了一种使用MyBatis框架通过Java实现批量处理的方法,包括创建SqlSession、配置默认执行器类型为BATCH、获取连接、开启事务等关键步骤,并详细解释了如何使用MappedStatement进行批量更新操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在用mybatis
对于批量处理,
ibatis sqlMapper方式已经不能用了。
自己试了一下,java实现batch
随便写的。


SqlSession sqlse = getSqlSession();
Connection connection = null;
Transaction transaction = null;
Environment env;
BatchExecutor be;
try {
Configuration conf = sqlse.getConfiguration();
conf.setDefaultExecutorType(ExecutorType.BATCH);
env = conf.getEnvironment();
connection = env.getDataSource().getConnection();
connection.setAutoCommit(false);
transaction = env.getTransactionFactory().newTransaction(connection, false);
be = new BatchExecutor(conf, transaction);
MappedStatement ms = conf.getMappedStatement(sqlID);
int x = 0;

Object bt;
List<Object> bts = (List<Object>) bindParams;

for (int i = 0; i < bts.size(); i++) {
bt = bts.get(i);
x = be.update(ms, bt);
System.out.println(x + "x:");
}

be.commit(true);
transaction.commit();
List<BatchResult> bl = be.flushStatements();
if(bl != null){
for(int b = 0; b < bl.size(); b ++){
BatchResult br = bl.get(b);
re = br.getUpdateCounts();
System.out.println("re length:" + re.length);
}
}
be.close(false);
transaction.close();
System.out.println(x);
} catch (SQLException e) {
e.printStackTrace();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值