public abstract class org.springframework.jdbc.core.BatchUpdateUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.jdbc.core.BatchUpdateUtils
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.core.BatchUpdateUtils this
         0: .line 35
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.springframework.jdbc.core.BatchUpdateUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/core/BatchUpdateUtils;

  public static int[] executeBatchUpdate(java.lang.String, java.util.List<java.lang.Object[]>, int[], org.springframework.jdbc.core.JdbcOperations);
    descriptor: (Ljava/lang/String;Ljava/util/List;[ILorg/springframework/jdbc/core/JdbcOperations;)[I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // java.lang.String sql
        start local 1 // java.util.List batchArgs
        start local 2 // int[] columnTypes
        start local 3 // org.springframework.jdbc.core.JdbcOperations jdbcOperations
         0: .line 40
            aload 1 /* batchArgs */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 2
         1: .line 41
            iconst_0
            newarray 10
            areturn
         2: .line 44
      StackMap locals:
      StackMap stack:
            aload 3 /* jdbcOperations */
         3: .line 45
            aload 0 /* sql */
         4: .line 46
            new org.springframework.jdbc.core.BatchUpdateUtils$1
            dup
            aload 1 /* batchArgs */
            aload 2 /* columnTypes */
            invokespecial org.springframework.jdbc.core.BatchUpdateUtils$1.<init>:(Ljava/util/List;[I)V
         5: .line 44
            invokeinterface org.springframework.jdbc.core.JdbcOperations.batchUpdate:(Ljava/lang/String;Lorg/springframework/jdbc/core/BatchPreparedStatementSetter;)[I
            areturn
        end local 3 // org.springframework.jdbc.core.JdbcOperations jdbcOperations
        end local 2 // int[] columnTypes
        end local 1 // java.util.List batchArgs
        end local 0 // java.lang.String sql
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0             sql  Ljava/lang/String;
            0    6     1       batchArgs  Ljava/util/List<[Ljava/lang/Object;>;
            0    6     2     columnTypes  [I
            0    6     3  jdbcOperations  Lorg/springframework/jdbc/core/JdbcOperations;
    Signature: (Ljava/lang/String;Ljava/util/List<[Ljava/lang/Object;>;[ILorg/springframework/jdbc/core/JdbcOperations;)[I
    MethodParameters:
                Name  Flags
      sql             
      batchArgs       final
      columnTypes     final
      jdbcOperations  

  protected static void setStatementParameters(java.lang.Object[], java.sql.PreparedStatement, int[]);
    descriptor: ([Ljava/lang/Object;Ljava/sql/PreparedStatement;[I)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // java.lang.Object[] values
        start local 1 // java.sql.PreparedStatement ps
        start local 2 // int[] columnTypes
         0: .line 62
            iconst_0
            istore 3 /* colIndex */
        start local 3 // int colIndex
         1: .line 63
            aload 0 /* values */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 14
      StackMap locals: java.lang.Object[] java.sql.PreparedStatement int[] int top int int java.lang.Object[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* value */
        start local 4 // java.lang.Object value
         3: .line 64
            iinc 3 /* colIndex */ 1
         4: .line 65
            aload 4 /* value */
            instanceof org.springframework.jdbc.core.SqlParameterValue
            ifeq 8
         5: .line 66
            aload 4 /* value */
            checkcast org.springframework.jdbc.core.SqlParameterValue
            astore 8 /* paramValue */
        start local 8 // org.springframework.jdbc.core.SqlParameterValue paramValue
         6: .line 67
            aload 1 /* ps */
            iload 3 /* colIndex */
            aload 8 /* paramValue */
            aload 8 /* paramValue */
            invokevirtual org.springframework.jdbc.core.SqlParameterValue.getValue:()Ljava/lang/Object;
            invokestatic org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue:(Ljava/sql/PreparedStatement;ILorg/springframework/jdbc/core/SqlParameter;Ljava/lang/Object;)V
        end local 8 // org.springframework.jdbc.core.SqlParameterValue paramValue
         7: .line 68
            goto 13
         8: .line 71
      StackMap locals: java.lang.Object[] java.sql.PreparedStatement int[] int java.lang.Object int int java.lang.Object[]
      StackMap stack:
            aload 2 /* columnTypes */
            ifnull 9
            aload 2 /* columnTypes */
            arraylength
            iload 3 /* colIndex */
            if_icmpge 11
         9: .line 72
      StackMap locals:
      StackMap stack:
            ldc -2147483648
            istore 8 /* colType */
        start local 8 // int colType
        10: .line 73
            goto 12
        end local 8 // int colType
        11: .line 75
      StackMap locals:
      StackMap stack:
            aload 2 /* columnTypes */
            iload 3 /* colIndex */
            iconst_1
            isub
            iaload
            istore 8 /* colType */
        start local 8 // int colType
        12: .line 77
      StackMap locals: int
      StackMap stack:
            aload 1 /* ps */
            iload 3 /* colIndex */
            iload 8 /* colType */
            aload 4 /* value */
            invokestatic org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue:(Ljava/sql/PreparedStatement;IILjava/lang/Object;)V
        end local 8 // int colType
        end local 4 // java.lang.Object value
        13: .line 63
      StackMap locals: java.lang.Object[] java.sql.PreparedStatement int[] int top int int java.lang.Object[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        14: iload 5
            iload 6
            if_icmplt 2
        15: .line 80
            return
        end local 3 // int colIndex
        end local 2 // int[] columnTypes
        end local 1 // java.sql.PreparedStatement ps
        end local 0 // java.lang.Object[] values
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0       values  [Ljava/lang/Object;
            0   16     1           ps  Ljava/sql/PreparedStatement;
            0   16     2  columnTypes  [I
            1   16     3     colIndex  I
            3   13     4        value  Ljava/lang/Object;
            6    7     8   paramValue  Lorg/springframework/jdbc/core/SqlParameterValue;
           10   11     8      colType  I
           12   13     8      colType  I
    Exceptions:
      throws java.sql.SQLException
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
      2:
        org.springframework.lang.Nullable()
    MethodParameters:
             Name  Flags
      values       
      ps           
      columnTypes  
}
SourceFile: "BatchUpdateUtils.java"
NestMembers:
  org.springframework.jdbc.core.BatchUpdateUtils$1
InnerClasses:
  org.springframework.jdbc.core.BatchUpdateUtils$1
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()