Spring的批处理

- 批处理主要是分两步:
  1.将要执行的SQL语句保存
  2.执行SQL语句

- Statement和PreparedStatement都支持批处理操作,这里我们只需要掌握PreparedStatement的批处理方式:
  - 方法:
  void addBatch()
    - 将要执行的SQL先保存起来,先不执行
    - 这个方法在设置完所有的占位符之后调用
  int[] executeBatch()
    - 这个方法用来执行SQL语句,这个方法会将批处理中所有SQL语句执行

 

- mysql默认批处理是关闭的,所以我们还需要去打开mysql的批处理:
  rewriteBatchedStatements=true
  我们需要将以上的参数添加到mysql的url地址中,即连接数据库的URL中。

注意: 低版本的mysql-jdbc驱动也不支持批处理,一般都是在修改的时候使用批处理,查询的时候不使用

一、首先创建一个动态web工程

二、加入jar包

  mysql-connector-java-5.1.43-bin.jar

三、实例

public class Insert {
    
    public static void insert() {
//Util是我自己写的对连接数据库的封装类
//getConn()方法是获取Connection对象的方法。
Connection conn = Util.getConn(); PreparedStatement ps=null; String sql="insert into t_emp(name) values(?)"; //向数据库中插入1000条数据 try { ps = conn.prepareStatement(sql); for (int i = 0; i < 1000; i++) { ps.setString(1, "temp"+i); // 加入到批处理中 ps.addBatch(); }
//执行开始的时间戳
long Btime = System.currentTimeMillis(); // 执行批处理 ps.executeBatch();
//执行结束的时间戳
long Etime = System.currentTimeMillis(); // 计算总共需要的时间 System.out.println("时间为:"+(Etime-Btime)); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } Util.colse(conn, ps, null); } }

 

四、开启批处理操作

  

//连接数据库声明的变量,在我自定义的Util包中
static
String user = "root"; static String password = "root"; static String url = "jdbc:mysql://localhost:3306/neuedu?rewriteBatchedStatements=true";

 

五、建一个Junit 测试类

  JUnit Test Case

public class InsertTest {

    @Test
    public void testMain() {
        Insert.insert();
    }

}

 

转载于:https://www.cnblogs.com/xuesheng/p/7454990.html

Spring Batch是一个轻量级、全面的批处理框架,旨在支持开发对企业系统的日常运营至关重要的强大批处理应用程序。它建立在Spring Framework的特性之上,提供了生产力、基于POJO的开发方法和易用性,并允许开发人员在需要时轻松访问和利用更高级的企业服务。Spring Batch不是一个调度框架,而是与调度程序一起工作,提供了必要的可重用功能,如日志记录/跟踪、事务管理、作业处理统计、作业重新启动、跳过和资源管理。它还提供了优化和分区技术,实现了高容量和高性能的批处理作业。Spring Batch适用于各种场景,包括简单的文件读取和数据库操作,以及复杂的大容量数据转换和处理。它可以以高度可扩展的方式处理大量信息。\[1\]\[3\] #### 引用[.reference_title] - *1* [Spring Batch 批处理框架](https://blog.csdn.net/tumu6889/article/details/125506198)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Spring批处理CSV处理](https://blog.csdn.net/dnc8371/article/details/106702159)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [10分钟搞定 Spring 批处理组件 —— spring-batch](https://blog.csdn.net/m0_71777195/article/details/126318999)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值