public abstract class org.springframework.jdbc.core.namedparam.NamedParameterUtils
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.springframework.jdbc.core.namedparam.NamedParameterUtils
super_class: java.lang.Object
{
private static final java.lang.String[] START_SKIP;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String[] STOP_SKIP;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String PARAMETER_SEPARATORS;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "\"':&,;()|=+-*%/\\<>^"
private static final boolean[] separatorIndex;
descriptor: [Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=0
0: iconst_4
anewarray java.lang.String
dup
iconst_0
ldc "'"
aastore
dup
iconst_1
ldc "\""
aastore
dup
iconst_2
ldc "--"
aastore
dup
iconst_3
ldc "/*"
aastore
putstatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.START_SKIP:[Ljava/lang/String;
1: iconst_4
anewarray java.lang.String
dup
iconst_0
ldc "'"
aastore
dup
iconst_1
ldc "\""
aastore
dup
iconst_2
ldc "\n"
aastore
dup
iconst_3
ldc "*/"
aastore
putstatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.STOP_SKIP:[Ljava/lang/String;
2: sipush 128
newarray 4
putstatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.separatorIndex:[Z
3: ldc "\"':&,;()|=+-*%/\\<>^"
invokevirtual java.lang.String.toCharArray:()[C
dup
astore 3
arraylength
istore 2
iconst_0
istore 1
goto 7
StackMap locals: top int int char[]
StackMap stack:
4: aload 3
iload 1
caload
istore 0
start local 0 5: getstatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.separatorIndex:[Z
iload 0
iconst_1
bastore
end local 0 6: iinc 1 1
StackMap locals:
StackMap stack:
7: iload 1
iload 2
if_icmplt 4
8: return
LocalVariableTable:
Start End Slot Name Signature
5 6 0 c C
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/jdbc/core/namedparam/NamedParameterUtils;
public static org.springframework.jdbc.core.namedparam.ParsedSql parseSqlStatement(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/springframework/jdbc/core/namedparam/ParsedSql;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=14, args_size=1
start local 0 0: aload 0
ldc "SQL must not be null"
invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
1: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 1
start local 1 2: new java.lang.StringBuilder
dup
aload 0
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 2
start local 2 3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 4: aload 0
invokevirtual java.lang.String.toCharArray:()[C
astore 4
start local 4 5: iconst_0
istore 5
start local 5 6: iconst_0
istore 6
start local 6 7: iconst_0
istore 7
start local 7 8: iconst_0
istore 8
start local 8 9: iconst_0
istore 9
start local 9 10: goto 70
11: StackMap locals: java.lang.String java.util.Set java.lang.StringBuilder java.util.List char[] int int int int int
StackMap stack:
iload 9
istore 10
start local 10 12: goto 17
13: StackMap locals: int
StackMap stack:
aload 4
iload 9
invokestatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.skipCommentsAndQuotes:([CI)I
istore 10
14: iload 9
iload 10
if_icmpne 16
15: goto 18
16: StackMap locals:
StackMap stack:
iload 10
istore 9
17: StackMap locals:
StackMap stack:
iload 9
aload 4
arraylength
if_icmplt 13
18: StackMap locals:
StackMap stack:
iload 9
aload 4
arraylength
if_icmplt 20
19: goto 71
20: StackMap locals:
StackMap stack:
aload 4
iload 9
caload
istore 11
start local 11 21: iload 11
bipush 58
if_icmpeq 22
iload 11
bipush 38
if_icmpne 55
22: StackMap locals: int
StackMap stack:
iload 9
iconst_1
iadd
istore 12
start local 12 23: iload 11
bipush 58
if_icmpne 26
iload 12
aload 4
arraylength
if_icmpge 26
aload 4
iload 12
caload
bipush 58
if_icmpne 26
24: iinc 9 2
25: goto 70
26: StackMap locals: int
StackMap stack:
aconst_null
astore 13
start local 13 27: iload 11
bipush 58
if_icmpne 47
iload 12
aload 4
arraylength
if_icmpge 47
aload 4
iload 12
caload
bipush 123
if_icmpne 47
28: goto 38
29: StackMap locals: java.lang.String
StackMap stack:
iinc 12 1
30: iload 12
aload 4
arraylength
if_icmplt 34
31: new org.springframework.dao.InvalidDataAccessApiUsageException
dup
new java.lang.StringBuilder
dup
ldc "Non-terminated named parameter declaration at position "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
32: iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " in statement: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
33: invokespecial org.springframework.dao.InvalidDataAccessApiUsageException.<init>:(Ljava/lang/String;)V
athrow
34: StackMap locals:
StackMap stack:
aload 4
iload 12
caload
bipush 58
if_icmpeq 35
aload 4
iload 12
caload
bipush 123
if_icmpne 38
35: StackMap locals:
StackMap stack:
new org.springframework.dao.InvalidDataAccessApiUsageException
dup
new java.lang.StringBuilder
dup
ldc "Parameter name contains invalid character '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
36: aload 4
iload 12
caload
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc "' at position "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " in statement: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
37: invokespecial org.springframework.dao.InvalidDataAccessApiUsageException.<init>:(Ljava/lang/String;)V
athrow
38: StackMap locals:
StackMap stack:
aload 4
iload 12
caload
bipush 125
if_icmpne 29
39: iload 12
iload 9
isub
iconst_2
if_icmple 44
40: aload 0
iload 9
iconst_2
iadd
iload 12
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 13
41: aload 1
iload 5
aload 13
invokestatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.addNewNamedParameter:(Ljava/util/Set;ILjava/lang/String;)I
istore 5
42: aload 3
iload 7
iload 8
iload 9
iload 12
iconst_1
iadd
aload 13
43: invokestatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.addNamedParameter:(Ljava/util/List;IIIILjava/lang/String;)I
istore 7
44: StackMap locals:
StackMap stack:
iinc 12 1
45: goto 53
46: StackMap locals:
StackMap stack:
iinc 12 1
47: StackMap locals:
StackMap stack:
iload 12
aload 4
arraylength
if_icmpge 48
aload 4
iload 12
caload
invokestatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.isParameterSeparator:(C)Z
ifeq 46
48: StackMap locals:
StackMap stack:
iload 12
iload 9
isub
iconst_1
if_icmple 53
49: aload 0
iload 9
iconst_1
iadd
iload 12
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 13
50: aload 1
iload 5
aload 13
invokestatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.addNewNamedParameter:(Ljava/util/Set;ILjava/lang/String;)I
istore 5
51: aload 3
iload 7
iload 8
iload 9
iload 12
aload 13
52: invokestatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.addNamedParameter:(Ljava/util/List;IIIILjava/lang/String;)I
istore 7
53: StackMap locals:
StackMap stack:
iload 12
iconst_1
isub
istore 9
end local 13 end local 12 54: goto 69
55: StackMap locals:
StackMap stack:
iload 11
bipush 92
if_icmpne 62
56: iload 9
iconst_1
iadd
istore 12
start local 12 57: iload 12
aload 4
arraylength
if_icmpge 62
aload 4
iload 12
caload
bipush 58
if_icmpne 62
58: aload 2
iload 9
iload 8
isub
invokevirtual java.lang.StringBuilder.deleteCharAt:(I)Ljava/lang/StringBuilder;
pop
59: iinc 8 1
60: iinc 9 2
61: goto 70
end local 12 62: StackMap locals:
StackMap stack:
iload 11
bipush 63
if_icmpne 69
63: iload 9
iconst_1
iadd
istore 12
start local 12 64: iload 12
aload 4
arraylength
if_icmpge 67
aload 4
iload 12
caload
bipush 63
if_icmpeq 65
aload 4
iload 12
caload
bipush 124
if_icmpeq 65
aload 4
iload 12
caload
bipush 38
if_icmpne 67
65: StackMap locals: int
StackMap stack:
iinc 9 2
66: goto 70
67: StackMap locals:
StackMap stack:
iinc 6 1
68: iinc 7 1
end local 12 69: StackMap locals:
StackMap stack:
iinc 9 1
end local 11 end local 10 70: StackMap locals:
StackMap stack:
iload 9
aload 4
arraylength
if_icmplt 11
71: StackMap locals:
StackMap stack:
new org.springframework.jdbc.core.namedparam.ParsedSql
dup
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.springframework.jdbc.core.namedparam.ParsedSql.<init>:(Ljava/lang/String;)V
astore 10
start local 10 72: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 75
StackMap locals: java.lang.String java.util.Set java.lang.StringBuilder java.util.List char[] int int int int int org.springframework.jdbc.core.namedparam.ParsedSql top java.util.Iterator
StackMap stack:
73: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.jdbc.core.namedparam.NamedParameterUtils$ParameterHolder
astore 11
start local 11 74: aload 10
aload 11
invokevirtual org.springframework.jdbc.core.namedparam.NamedParameterUtils$ParameterHolder.getParameterName:()Ljava/lang/String;
aload 11
invokevirtual org.springframework.jdbc.core.namedparam.NamedParameterUtils$ParameterHolder.getStartIndex:()I
aload 11
invokevirtual org.springframework.jdbc.core.namedparam.NamedParameterUtils$ParameterHolder.getEndIndex:()I
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.addNamedParameter:(Ljava/lang/String;II)V
end local 11 75: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 73
76: aload 10
iload 5
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.setNamedParameterCount:(I)V
77: aload 10
iload 6
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.setUnnamedParameterCount:(I)V
78: aload 10
iload 7
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.setTotalParameterCount:(I)V
79: aload 10
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 80 0 sql Ljava/lang/String;
2 80 1 namedParameters Ljava/util/Set<Ljava/lang/String;>;
3 80 2 sqlToUse Ljava/lang/StringBuilder;
4 80 3 parameterList Ljava/util/List<Lorg/springframework/jdbc/core/namedparam/NamedParameterUtils$ParameterHolder;>;
5 80 4 statement [C
6 80 5 namedParameterCount I
7 80 6 unnamedParameterCount I
8 80 7 totalParameterCount I
9 80 8 escapes I
10 80 9 i I
12 70 10 skipToPosition I
21 70 11 c C
23 54 12 j I
27 54 13 parameter Ljava/lang/String;
57 62 12 j I
64 69 12 j I
72 80 10 parsedSql Lorg/springframework/jdbc/core/namedparam/ParsedSql;
74 75 11 ph Lorg/springframework/jdbc/core/namedparam/NamedParameterUtils$ParameterHolder;
MethodParameters:
Name Flags
sql final
private static int addNamedParameter(java.util.List<org.springframework.jdbc.core.namedparam.NamedParameterUtils$ParameterHolder>, int, int, int, int, java.lang.String);
descriptor: (Ljava/util/List;IIIILjava/lang/String;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
new org.springframework.jdbc.core.namedparam.NamedParameterUtils$ParameterHolder
dup
aload 5
iload 3
iload 2
isub
iload 4
iload 2
isub
invokespecial org.springframework.jdbc.core.namedparam.NamedParameterUtils$ParameterHolder.<init>:(Ljava/lang/String;II)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: iinc 1 1
2: iload 1
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 parameterList Ljava/util/List<Lorg/springframework/jdbc/core/namedparam/NamedParameterUtils$ParameterHolder;>;
0 3 1 totalParameterCount I
0 3 2 escapes I
0 3 3 i I
0 3 4 j I
0 3 5 parameter Ljava/lang/String;
Signature: (Ljava/util/List<Lorg/springframework/jdbc/core/namedparam/NamedParameterUtils$ParameterHolder;>;IIIILjava/lang/String;)I
MethodParameters:
Name Flags
parameterList
totalParameterCount
escapes
i
j
parameter
private static int addNewNamedParameter(java.util.Set<java.lang.String>, int, java.lang.String);
descriptor: (Ljava/util/Set;ILjava/lang/String;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 3
1: aload 0
aload 2
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
2: iinc 1 1
3: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 namedParameters Ljava/util/Set<Ljava/lang/String;>;
0 4 1 namedParameterCount I
0 4 2 parameter Ljava/lang/String;
Signature: (Ljava/util/Set<Ljava/lang/String;>;ILjava/lang/String;)I
MethodParameters:
Name Flags
namedParameters
namedParameterCount
parameter
private static int skipCommentsAndQuotes(char[], int);
descriptor: ([CI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=9, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 34
2: StackMap locals: int
StackMap stack:
aload 0
iload 1
caload
getstatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.START_SKIP:[Ljava/lang/String;
iload 2
aaload
iconst_0
invokevirtual java.lang.String.charAt:(I)C
if_icmpne 33
3: iconst_1
istore 3
start local 3 4: iconst_1
istore 4
start local 4 5: goto 10
6: StackMap locals: int int
StackMap stack:
aload 0
iload 1
iload 4
iadd
caload
getstatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.START_SKIP:[Ljava/lang/String;
iload 2
aaload
iload 4
invokevirtual java.lang.String.charAt:(I)C
if_icmpeq 9
7: iconst_0
istore 3
8: goto 11
9: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
10: iload 4
getstatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.START_SKIP:[Ljava/lang/String;
iload 2
aaload
invokevirtual java.lang.String.length:()I
if_icmplt 6
end local 4 11: StackMap locals:
StackMap stack:
iload 3
ifeq 33
12: getstatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.START_SKIP:[Ljava/lang/String;
iload 2
aaload
invokevirtual java.lang.String.length:()I
istore 4
start local 4 13: iload 1
iload 4
iadd
istore 5
start local 5 14: goto 31
15: StackMap locals: int int
StackMap stack:
aload 0
iload 5
caload
getstatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.STOP_SKIP:[Ljava/lang/String;
iload 2
aaload
iconst_0
invokevirtual java.lang.String.charAt:(I)C
if_icmpne 30
16: iconst_1
istore 6
start local 6 17: iload 5
istore 7
start local 7 18: iconst_1
istore 8
start local 8 19: goto 27
20: StackMap locals: int int int
StackMap stack:
iload 5
iload 8
iadd
aload 0
arraylength
if_icmplt 22
21: aload 0
arraylength
ireturn
22: StackMap locals:
StackMap stack:
aload 0
iload 5
iload 8
iadd
caload
getstatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.STOP_SKIP:[Ljava/lang/String;
iload 2
aaload
iload 8
invokevirtual java.lang.String.charAt:(I)C
if_icmpeq 25
23: iconst_0
istore 6
24: goto 28
25: StackMap locals:
StackMap stack:
iload 5
iload 8
iadd
istore 7
26: iinc 8 1
StackMap locals:
StackMap stack:
27: iload 8
getstatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.STOP_SKIP:[Ljava/lang/String;
iload 2
aaload
invokevirtual java.lang.String.length:()I
if_icmplt 20
end local 8 28: StackMap locals:
StackMap stack:
iload 6
ifeq 30
29: iload 7
iconst_1
iadd
ireturn
end local 7 end local 6 30: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
31: iload 5
aload 0
arraylength
if_icmplt 15
end local 5 32: aload 0
arraylength
ireturn
end local 4 end local 3 33: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
34: iload 2
getstatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.START_SKIP:[Ljava/lang/String;
arraylength
if_icmplt 2
end local 2 35: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 statement [C
0 36 1 position I
1 35 2 i I
4 33 3 match Z
5 11 4 j I
13 33 4 offset I
14 32 5 m I
17 30 6 endMatch Z
18 30 7 endPos I
19 28 8 n I
MethodParameters:
Name Flags
statement
position
public static java.lang.String substituteNamedParameters(org.springframework.jdbc.core.namedparam.ParsedSql, org.springframework.jdbc.core.namedparam.SqlParameterSource);
descriptor: (Lorg/springframework/jdbc/core/namedparam/ParsedSql;Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=17, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.getOriginalSql:()Ljava/lang/String;
astore 2
start local 2 1: aload 0
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.getParameterNames:()Ljava/util/List;
astore 3
start local 3 2: aload 3
invokeinterface java.util.List.isEmpty:()Z
ifeq 4
3: aload 2
areturn
4: StackMap locals: java.lang.String java.util.List
StackMap stack:
new java.lang.StringBuilder
dup
aload 2
invokevirtual java.lang.String.length:()I
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 4
start local 4 5: iconst_0
istore 5
start local 5 6: iconst_0
istore 6
start local 6 7: goto 45
8: StackMap locals: java.lang.StringBuilder int int
StackMap stack:
aload 3
iload 6
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 9: aload 0
iload 6
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.getParameterIndexes:(I)[I
astore 8
start local 8 10: aload 8
iconst_0
iaload
istore 9
start local 9 11: aload 8
iconst_1
iaload
istore 10
start local 10 12: aload 4
aload 2
iload 5
iload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
pop
13: aload 1
ifnull 42
aload 1
aload 7
invokeinterface org.springframework.jdbc.core.namedparam.SqlParameterSource.hasValue:(Ljava/lang/String;)Z
ifeq 42
14: aload 1
aload 7
invokeinterface org.springframework.jdbc.core.namedparam.SqlParameterSource.getValue:(Ljava/lang/String;)Ljava/lang/Object;
astore 11
start local 11 15: aload 11
instanceof org.springframework.jdbc.core.SqlParameterValue
ifeq 17
16: aload 11
checkcast org.springframework.jdbc.core.SqlParameterValue
invokevirtual org.springframework.jdbc.core.SqlParameterValue.getValue:()Ljava/lang/Object;
astore 11
17: StackMap locals: org.springframework.jdbc.core.namedparam.ParsedSql org.springframework.jdbc.core.namedparam.SqlParameterSource java.lang.String java.util.List java.lang.StringBuilder int int java.lang.String int[] int int java.lang.Object
StackMap stack:
aload 11
instanceof java.lang.Iterable
ifeq 40
18: aload 11
checkcast java.lang.Iterable
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 12
start local 12 19: iconst_0
istore 13
start local 13 20: goto 38
21: StackMap locals: java.util.Iterator int
StackMap stack:
iload 13
ifle 23
22: aload 4
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
23: StackMap locals:
StackMap stack:
iinc 13 1
24: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 14
start local 14 25: aload 14
instanceof java.lang.Object[]
ifeq 37
26: aload 14
checkcast java.lang.Object[]
astore 15
start local 15 27: aload 4
bipush 40
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
28: iconst_0
istore 16
start local 16 29: goto 34
30: StackMap locals: java.lang.Object java.lang.Object[] int
StackMap stack:
iload 16
ifle 32
31: aload 4
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
32: StackMap locals:
StackMap stack:
aload 4
bipush 63
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
33: iinc 16 1
StackMap locals:
StackMap stack:
34: iload 16
aload 15
arraylength
if_icmplt 30
end local 16 35: aload 4
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 15 36: goto 38
37: StackMap locals:
StackMap stack:
aload 4
bipush 63
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 14 38: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
end local 13 end local 12 39: goto 43
40: StackMap locals:
StackMap stack:
aload 4
bipush 63
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 11 41: goto 43
42: StackMap locals:
StackMap stack:
aload 4
bipush 63
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
43: StackMap locals:
StackMap stack:
iload 10
istore 5
end local 10 end local 9 end local 8 end local 7 44: iinc 6 1
StackMap locals: org.springframework.jdbc.core.namedparam.ParsedSql org.springframework.jdbc.core.namedparam.SqlParameterSource java.lang.String java.util.List java.lang.StringBuilder int int
StackMap stack:
45: iload 6
aload 3
invokeinterface java.util.List.size:()I
if_icmplt 8
end local 6 46: aload 4
aload 2
iload 5
aload 2
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
pop
47: aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 48 0 parsedSql Lorg/springframework/jdbc/core/namedparam/ParsedSql;
0 48 1 paramSource Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;
1 48 2 originalSql Ljava/lang/String;
2 48 3 paramNames Ljava/util/List<Ljava/lang/String;>;
5 48 4 actualSql Ljava/lang/StringBuilder;
6 48 5 lastIndex I
7 46 6 i I
9 44 7 paramName Ljava/lang/String;
10 44 8 indexes [I
11 44 9 startIndex I
12 44 10 endIndex I
15 41 11 value Ljava/lang/Object;
19 39 12 entryIter Ljava/util/Iterator<*>;
20 39 13 k I
25 38 14 entryItem Ljava/lang/Object;
27 36 15 expressionList [Ljava/lang/Object;
29 35 16 m I
RuntimeVisibleParameterAnnotations:
0:
1:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
parsedSql
paramSource
public static [] buildValueArray(org.springframework.jdbc.core.namedparam.ParsedSql, org.springframework.jdbc.core.namedparam.SqlParameterSource, java.util.List<org.springframework.jdbc.core.SqlParameter>);
descriptor: (Lorg/springframework/jdbc/core/namedparam/ParsedSql;Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;Ljava/util/List;)[Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.getTotalParameterCount:()I
anewarray java.lang.Object
astore 3
start local 3 1: aload 0
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.getNamedParameterCount:()I
ifle 9
aload 0
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.getUnnamedParameterCount:()I
ifle 9
2: new org.springframework.dao.InvalidDataAccessApiUsageException
dup
3: new java.lang.StringBuilder
dup
ldc "Not allowed to mix named and traditional ? placeholders. You have "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: aload 0
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.getNamedParameterCount:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " named parameter(s) and "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: aload 0
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.getUnnamedParameterCount:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " traditional placeholder(s) in statement: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: aload 0
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.getOriginalSql:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokespecial org.springframework.dao.InvalidDataAccessApiUsageException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: java.lang.Object[]
StackMap stack:
aload 0
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.getParameterNames:()Ljava/util/List;
astore 4
start local 4 10: iconst_0
istore 5
start local 5 11: goto 23
12: StackMap locals: java.util.List int
StackMap stack:
aload 4
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 13: aload 2
aload 6
iload 5
invokestatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.findParameter:(Ljava/util/List;Ljava/lang/String;I)Lorg/springframework/jdbc/core/SqlParameter;
astore 7
start local 7 14: aload 3
iload 5
aload 7
ifnull 15
new org.springframework.jdbc.core.SqlParameterValue
dup
aload 7
aload 1
aload 6
invokeinterface org.springframework.jdbc.core.namedparam.SqlParameterSource.getValue:(Ljava/lang/String;)Ljava/lang/Object;
invokespecial org.springframework.jdbc.core.SqlParameterValue.<init>:(Lorg/springframework/jdbc/core/SqlParameter;Ljava/lang/Object;)V
goto 16
15: StackMap locals: org.springframework.jdbc.core.namedparam.ParsedSql org.springframework.jdbc.core.namedparam.SqlParameterSource java.util.List java.lang.Object[] java.util.List int java.lang.String org.springframework.jdbc.core.SqlParameter
StackMap stack: java.lang.Object[] int
aload 1
aload 6
invokestatic org.springframework.jdbc.core.namedparam.SqlParameterSourceUtils.getTypedValue:(Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;Ljava/lang/String;)Ljava/lang/Object;
16: StackMap locals: org.springframework.jdbc.core.namedparam.ParsedSql org.springframework.jdbc.core.namedparam.SqlParameterSource java.util.List java.lang.Object[] java.util.List int java.lang.String org.springframework.jdbc.core.SqlParameter
StackMap stack: java.lang.Object[] int java.lang.Object
aastore
end local 7 17: goto 22
18: StackMap locals: org.springframework.jdbc.core.namedparam.ParsedSql org.springframework.jdbc.core.namedparam.SqlParameterSource java.util.List java.lang.Object[] java.util.List int java.lang.String
StackMap stack: java.lang.IllegalArgumentException
astore 7
start local 7 19: new org.springframework.dao.InvalidDataAccessApiUsageException
dup
20: new java.lang.StringBuilder
dup
ldc "No value supplied for the SQL parameter '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "': "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: invokespecial org.springframework.dao.InvalidDataAccessApiUsageException.<init>:(Ljava/lang/String;)V
athrow
end local 7 end local 6 22: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
23: iload 5
aload 4
invokeinterface java.util.List.size:()I
if_icmplt 12
end local 5 24: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 parsedSql Lorg/springframework/jdbc/core/namedparam/ParsedSql;
0 25 1 paramSource Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;
0 25 2 declaredParams Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;
1 25 3 paramArray [Ljava/lang/Object;
10 25 4 paramNames Ljava/util/List<Ljava/lang/String;>;
11 24 5 i I
13 22 6 paramName Ljava/lang/String;
14 17 7 param Lorg/springframework/jdbc/core/SqlParameter;
19 22 7 ex Ljava/lang/IllegalArgumentException;
Exception table:
from to target type
13 17 18 Class java.lang.IllegalArgumentException
Signature: (Lorg/springframework/jdbc/core/namedparam/ParsedSql;Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;)[Ljava/lang/Object;
RuntimeVisibleParameterAnnotations:
0:
1:
2:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
parsedSql
paramSource
declaredParams
private static org.springframework.jdbc.core.SqlParameter findParameter(java.util.List<org.springframework.jdbc.core.SqlParameter>, java.lang.String, int);
descriptor: (Ljava/util/List;Ljava/lang/String;I)Lorg/springframework/jdbc/core/SqlParameter;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
ifnull 10
1: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: java.util.List java.lang.String int top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.springframework.jdbc.core.SqlParameter
astore 3
start local 3 3: aload 1
aload 3
invokevirtual org.springframework.jdbc.core.SqlParameter.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
4: aload 3
areturn
end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: iload 2
aload 0
invokeinterface java.util.List.size:()I
if_icmpge 10
7: aload 0
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.springframework.jdbc.core.SqlParameter
astore 3
start local 3 8: aload 3
invokevirtual org.springframework.jdbc.core.SqlParameter.getName:()Ljava/lang/String;
ifnonnull 10
9: aload 3
areturn
end local 3 10: StackMap locals: java.util.List java.lang.String int
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 declaredParams Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;
0 11 1 paramName Ljava/lang/String;
0 11 2 paramIndex I
3 5 3 declaredParam Lorg/springframework/jdbc/core/SqlParameter;
8 10 3 declaredParam Lorg/springframework/jdbc/core/SqlParameter;
Signature: (Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;Ljava/lang/String;I)Lorg/springframework/jdbc/core/SqlParameter;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
2:
MethodParameters:
Name Flags
declaredParams
paramName
paramIndex
private static boolean isParameterSeparator(char);
descriptor: (C)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
sipush 128
if_icmpge 1
getstatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.separatorIndex:[Z
iload 0
baload
ifne 2
StackMap locals:
StackMap stack:
1: iload 0
invokestatic java.lang.Character.isWhitespace:(C)Z
ifne 2
iconst_0
ireturn
StackMap locals:
StackMap stack:
2: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 c C
MethodParameters:
Name Flags
c
public static int[] buildSqlTypeArray(org.springframework.jdbc.core.namedparam.ParsedSql, org.springframework.jdbc.core.namedparam.SqlParameterSource);
descriptor: (Lorg/springframework/jdbc/core/namedparam/ParsedSql;Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;)[I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.getTotalParameterCount:()I
newarray 10
astore 2
start local 2 1: aload 0
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.getParameterNames:()Ljava/util/List;
astore 3
start local 3 2: iconst_0
istore 4
start local 4 3: goto 7
4: StackMap locals: int[] java.util.List int
StackMap stack:
aload 3
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 5: aload 2
iload 4
aload 1
aload 5
invokeinterface org.springframework.jdbc.core.namedparam.SqlParameterSource.getSqlType:(Ljava/lang/String;)I
iastore
end local 5 6: iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
aload 3
invokeinterface java.util.List.size:()I
if_icmplt 4
end local 4 8: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 parsedSql Lorg/springframework/jdbc/core/namedparam/ParsedSql;
0 9 1 paramSource Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;
1 9 2 sqlTypes [I
2 9 3 paramNames Ljava/util/List<Ljava/lang/String;>;
3 8 4 i I
5 6 5 paramName Ljava/lang/String;
MethodParameters:
Name Flags
parsedSql
paramSource
public static java.util.List<org.springframework.jdbc.core.SqlParameter> buildSqlParameterList(org.springframework.jdbc.core.namedparam.ParsedSql, org.springframework.jdbc.core.namedparam.SqlParameterSource);
descriptor: (Lorg/springframework/jdbc/core/namedparam/ParsedSql;Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;)Ljava/util/List;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.springframework.jdbc.core.namedparam.ParsedSql.getParameterNames:()Ljava/util/List;
astore 2
start local 2 1: new java.util.ArrayList
dup
aload 2
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 3
start local 3 2: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: org.springframework.jdbc.core.namedparam.ParsedSql org.springframework.jdbc.core.namedparam.SqlParameterSource java.util.List java.util.List top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 4: aload 3
new org.springframework.jdbc.core.SqlParameter
dup
5: aload 4
aload 1
aload 4
invokeinterface org.springframework.jdbc.core.namedparam.SqlParameterSource.getSqlType:(Ljava/lang/String;)I
aload 1
aload 4
invokeinterface org.springframework.jdbc.core.namedparam.SqlParameterSource.getTypeName:(Ljava/lang/String;)Ljava/lang/String;
invokespecial org.springframework.jdbc.core.SqlParameter.<init>:(Ljava/lang/String;ILjava/lang/String;)V
6: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 7: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 parsedSql Lorg/springframework/jdbc/core/namedparam/ParsedSql;
0 9 1 paramSource Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;
1 9 2 paramNames Ljava/util/List<Ljava/lang/String;>;
2 9 3 params Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;
4 7 4 paramName Ljava/lang/String;
Signature: (Lorg/springframework/jdbc/core/namedparam/ParsedSql;Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;)Ljava/util/List<Lorg/springframework/jdbc/core/SqlParameter;>;
MethodParameters:
Name Flags
parsedSql
paramSource
public static java.lang.String parseSqlStatementIntoString(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokestatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.parseSqlStatement:(Ljava/lang/String;)Lorg/springframework/jdbc/core/namedparam/ParsedSql;
astore 1
start local 1 1: aload 1
aconst_null
invokestatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.substituteNamedParameters:(Lorg/springframework/jdbc/core/namedparam/ParsedSql;Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 sql Ljava/lang/String;
1 2 1 parsedSql Lorg/springframework/jdbc/core/namedparam/ParsedSql;
MethodParameters:
Name Flags
sql
public static java.lang.String substituteNamedParameters(java.lang.String, org.springframework.jdbc.core.namedparam.SqlParameterSource);
descriptor: (Ljava/lang/String;Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokestatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.parseSqlStatement:(Ljava/lang/String;)Lorg/springframework/jdbc/core/namedparam/ParsedSql;
astore 2
start local 2 1: aload 2
aload 1
invokestatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.substituteNamedParameters:(Lorg/springframework/jdbc/core/namedparam/ParsedSql;Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 sql Ljava/lang/String;
0 2 1 paramSource Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;
1 2 2 parsedSql Lorg/springframework/jdbc/core/namedparam/ParsedSql;
MethodParameters:
Name Flags
sql
paramSource
public static [] buildValueArray(java.lang.String, java.util.Map<java.lang.String, ?>);
descriptor: (Ljava/lang/String;Ljava/util/Map;)[Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokestatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.parseSqlStatement:(Ljava/lang/String;)Lorg/springframework/jdbc/core/namedparam/ParsedSql;
astore 2
start local 2 1: aload 2
new org.springframework.jdbc.core.namedparam.MapSqlParameterSource
dup
aload 1
invokespecial org.springframework.jdbc.core.namedparam.MapSqlParameterSource.<init>:(Ljava/util/Map;)V
aconst_null
invokestatic org.springframework.jdbc.core.namedparam.NamedParameterUtils.buildValueArray:(Lorg/springframework/jdbc/core/namedparam/ParsedSql;Lorg/springframework/jdbc/core/namedparam/SqlParameterSource;Ljava/util/List;)[Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 sql Ljava/lang/String;
0 2 1 paramMap Ljava/util/Map<Ljava/lang/String;*>;
1 2 2 parsedSql Lorg/springframework/jdbc/core/namedparam/ParsedSql;
Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;*>;)[Ljava/lang/Object;
MethodParameters:
Name Flags
sql
paramMap
}
SourceFile: "NamedParameterUtils.java"
NestMembers:
org.springframework.jdbc.core.namedparam.NamedParameterUtils$ParameterHolder
InnerClasses:
private ParameterHolder = org.springframework.jdbc.core.namedparam.NamedParameterUtils$ParameterHolder of org.springframework.jdbc.core.namedparam.NamedParameterUtils