java使用sql批量插入

用以解决mybatis的批量插入慢的问题

//注入这个
import javax.sql.DataSource;
@Resource()
private DataSource dataSource;
//
try {
            connection = dataSource.getConnection();
            connection.setAutoCommit(false);

            String sql = "insert into samic_ls_cl_estloss( "........
                    "            ) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?," +
                    "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?," +
                    "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
            //预编译语句
            statement = connection.prepareStatement(sql);

           
            for (SamicLsClEstlossExcelVo e : samicLsClEstlossExcelVoArrayList) {
               //填充问号
                statement.setLong(1, samicLsClEstloss.getSamicParentId());
                statement.setLong(2, samicLsClEstloss.getSamicTopId());
                statement.setString(3, samicLsClEstloss.getSamicListNo());
                statement.setString(4, samicLsClEstloss.getSamicFileId());
                statement.setString(5, samicLsClEstloss.getSamicCustomerCode());
                //添加到批量
                statement.addBatch();
            }
            //执行语句
            statement.executeBatch();
            //提交事务
            connection.commit();
  
        } catch (Exception e) {
            e.printStackTrace();
            // 异常回滚
            connection.rollback();
        }finally {
            //关闭资源
            connection.close();
            statement.close();
        }

具体测试参考链接:https://mp.weixin.qq.com/s/KydaP7bDM0VJ3BzCJFan_Q

https://mp.weixin.qq.com/s/3X5Id811KKaymrqpPS73rw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值