批量添加方法

本文介绍了一种使用Java进行批量SQL操作的方法,通过设置连接的自动提交为false,并使用Statement对象的addBatch方法来添加多个SQL语句,最后通过executeBatch执行所有SQL语句并手动提交更改,以此提高数据库操作效率。

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

public void batch (LinkedList<String> sqls) {
  try {
   conn=getConnection();
   st=conn.createStatement();
   //批量处理(数据库会默认是用事务方式)
   
   //1.设置提交方式为手动(非自动auto)
   conn.setAutoCommit(false);
   
   //2.将要批量的SQL语句存储到batch(缓冲区)中,循环添加要同时执行的sql语句
   for (int i = 0; i < sqls.size(); i++) {
    st.addBatch(sqls.get(i));
   }
   
   //3.执行批量提交
   st.executeBatch();
   
   //4.手动提交
   conn.commit();
   
   //5.关闭
   this.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
### 使用 MyBatis-Plus 实现批量插入 MyBatis-Plus 提供了 `saveBatch` 方法用于执行批量插入操作,这能极大提高数据插入效率[^2]。 #### 准备工作 为了使用 MyBatis-Plus 的批量插入功能,需确保项目已引入必要的依赖项并完成基础配置。通常情况下,会采用 Spring Boot 结合 MySQL 数据库环境进行开发,同时推荐使用 Idea 作为集成开发环境 (IDE),Maven 作为构建工具[^1]。 #### 配置数据库连接参数 对于某些数据库而言,默认的 JDBC 插入语句可能不会被批量化处理,从而影响性能表现。为此,建议在数据库连接字符串中加入特定参数以启用批处理支持: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&rewriteBatchedStatements=true ``` 上述 URL 中的关键部分是 `&rewriteBatchedStatements=true` 参数,该选项允许驱动程序重写 SQL 语句以便更好地利用底层数据库引擎的能力来进行高效的数据导入[^4]。 #### 编码实现 下面给出一段简单的 Java 代码示例来说明如何调用 `saveBatch` 进行批量保存实体对象列表至数据库表内: ```java import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.extension.service.IService; public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService { @Override public boolean batchInsertUsers(List<User> userList){ return this.saveBatch(userList); } } ``` 此方法接收一个包含多个用户记录的对象集合,并一次性提交给数据库服务器处理。需要注意的是,实际应用场景下应当考虑事务管理等因素的影响,以保障数据的一致性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值