如何在jdbctemplet Spring Java中获取更新行数

问题描述

int[][] updateCounts = jdbcTemplate.batchUpdate(QueryConstant.UPDATE_MERCHANT_STATUS,merchantList,1,new ParameterizedPreparedStatementSetter<Merchant>() {
           
           public void setValues(PreparedStatement ps,Merchant merchant)
              throws SQLException {
              ps.setString(1,merchant.getMerchantId());                        
           }
        }); 
        
        int a=0;
        for(int[] i : updateCounts) {
            System.out.println(updateCounts.length+":COUNT:"+i[a]);
        }
        System.out.println(updateCounts[1][0]+":test:"+updateCounts[0][0]);

使用in代码进行更新查询:更新商家设置标志=“ P”,其中商家ID输入为('1111','2222','');

我有3个不同的参数,由于最后一个值为空,所以只有两行正在更新。

我正在以这种方式被sysout占用: 3:COUNT:-2 3:COUNT:-2 3:COUNT:-2 -2:test:-2

如何获取仅受影响(更新)行的计数?

解决方法

对于使用预处理语句的批处理,-2表示操作成功,但是无法确定受影响的行数。

由于您使用的批次大小为1,因此首先需要批次吗?可以使用任何一种语句,也可以忽略批处理。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...