不允许的操作: operation cannot be mixed with Oracle-style batching

问题遇到的现象和发生背景

最近在使用批处理处理大数据量文件,想使用PreparedStatement进行预编译然后一次性操作。但是在执行过程中,addbatch步骤报错,不允许的操作。代码省略Connection创建步骤,自动提交已关闭

问题相关代码,请勿粘贴截图
            PreparedStatement prts = con.prepareStatement(sql);
            ResultSet rs = prts.executeQuery();
            String sqls = "update LRMONTHSURPLUSPROFIT set backup3 = ? ,backup4 = ? where recontcode = ? ";
            PreparedStatement sprt = con.prepareStatement(sqls);
            
            while(rs.next()){
                sprt.setInt(1, 1);
                sprt.setInt(2, 4);
                sprt.setString(3, rs.getString(1));
                sprt.addBatch();//此处报错
            }
            
            int[] a = sprt.executeBatch();
            System.out.println("执行成功:"+ a +"条");
            rs.close();
            prts.close();
            sprt.close();

运行结果及报错内容

java.sql.SQLException: 不允许的操作: operation cannot be mixed with Oracle-style batching
at oracle.jdbc.driver.OraclePreparedStatement.setJdbcBatchStyle(OraclePreparedStatement.java:9693)
at oracle.jdbc.driver.OraclePreparedStatement.addBatch(OraclePreparedStatement.java:9774)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.addBatch(OraclePreparedStatementWrapper.java:1358)
at test.TestRein.deal(TestRein.java:64)
at test.TestRein.run(TestRein.java:31)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)

我的解答思路和尝试过的方法

不是字段类型,长度的问题,使用的Oracle数据库。

我想要达到的结果

求帮忙解决此问题