您现在的位置是:主页 > news > 深圳微商城网站制作联系电话/2000元代理微信朋友圈广告
深圳微商城网站制作联系电话/2000元代理微信朋友圈广告
admin2025/6/22 7:47:50【news】
简介深圳微商城网站制作联系电话,2000元代理微信朋友圈广告,浙江华企做的网站效果如何,张槎网站建设制作基本介绍 当需要成批插入或者更新记录时。可以采用 Java 的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理。通常情况下比单独提交处理更有效率。JDBC 的批量处理语句包括下面方法: 1.addBatch() :添加需要批量处理的 SQL 语…
深圳微商城网站制作联系电话,2000元代理微信朋友圈广告,浙江华企做的网站效果如何,张槎网站建设制作基本介绍
当需要成批插入或者更新记录时。可以采用 Java 的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理。通常情况下比单独提交处理更有效率。JDBC 的批量处理语句包括下面方法: 1.addBatch() :添加需要批量处理的 SQL 语…
基本介绍
- 当需要成批插入或者更新记录时。可以采用
Java
的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理。通常情况下比单独提交处理更有效率。 JDBC
的批量处理语句包括下面方法:
1.addBatch()
:添加需要批量处理的SQL
语句或参数
2.executeBatch()
:执行批量处理语句
3.clearBatch()
:清空批处理包的语句JDBC
连接MySQL
时,如果要使用批处理功能,请再url
中加参数?rewriteBatchedStatements=true
- 批处理往往和
PreparedStatement
一起搭配使用,可以既减少编译次数,又减少运行次数,效率大大提高
案例:批量插入 5000 条数据,比较耗时
package Test;import org.junit.Test;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;/*** @Author: Gin* @Description:* @Modified By: Gin* @Date: Created in 16:00 2021/9/14*/
public class Test14 {/*** 不使用 Batch 耗时:26106 ms*/@Testpublic void noBatch(){Connection connection = null;String sql = "insert into admin2 values(null, ?, ?)";PreparedStatement preparedStatement = null;try{connection = JDBCUtils.getConnection();preparedStatement = connection.prepareStatement(sql);System.out.println("开始执行:");long start = System.currentTimeMillis();for(int i = 0; i < 5000; i++){preparedStatement.setString(1, "Gin" + i);preparedStatement.setString(2, "4869");// 每生成一条 SQL 语句就立即执行preparedStatement.executeUpdate();}long end = System.currentTimeMillis();System.out.println("传统方式耗时:" + (end - start) + " ms"); // 传统方式耗时:26106 ms} catch (SQLException e) {e.printStackTrace();} finally {JDBCUtils.close(null, preparedStatement, connection);}}/*** 使用 Batch 批处理 耗时:253 ms*/@Testpublic void useBatch(){Connection connection = null;String sql = "insert into admin2 values(null, ?, ?)";PreparedStatement preparedStatement = null;try{connection = JDBCUtils.getConnection();preparedStatement = connection.prepareStatement(sql);System.out.println("开始执行:");long start = System.currentTimeMillis();for(int i = 0; i < 5000; i++){preparedStatement.setString(1, "Gin" + i);preparedStatement.setString(2, "4869");// 将每一条 SQL 语句都添加到 Batch 中/*关于 addBatch() 方法:1. 第一次创建 ArrayList - elementData => Object[]2. elementData => Object[] 就会存放我们预处理的 SQL 语句3. elementData 默认的大小为 10,当存满数据后就按照 1.5 倍扩容4. 当添加到指定的值后,就 executeBatch5. 批量处理会减少我们发送 SQL 语句的网络开销,而且减少编译次数,提高效率*/preparedStatement.addBatch();if((i + 1) % 1000 ==0){// 每满 1000 条数据就执行一次preparedStatement.executeBatch();// 执行完毕后清空 BatchpreparedStatement.clearBatch();}}long end = System.currentTimeMillis();System.out.println("使用Batch耗时:" + (end - start) + " ms"); // 使用Batch耗时:253 ms} catch (SQLException e) {e.printStackTrace();} finally {JDBCUtils.close(null, preparedStatement, connection);}}}