public abstract class org.springframework.jdbc.datasource.AbstractDriverBasedDataSource extends org.springframework.jdbc.datasource.AbstractDataSource
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.jdbc.datasource.AbstractDriverBasedDataSource
  super_class: org.springframework.jdbc.datasource.AbstractDataSource
{
  private java.lang.String url;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private java.lang.String username;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private java.lang.String password;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private java.lang.String catalog;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private java.lang.String schema;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private java.util.Properties connectionProperties;
    descriptor: Ljava/util/Properties;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
         0: .line 34
            aload 0 /* this */
            invokespecial org.springframework.jdbc.datasource.AbstractDataSource.<init>:()V
            return
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;

  public void setUrl(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
        start local 1 // java.lang.String url
         0: .line 60
            aload 0 /* this */
            aload 1 /* url */
            ifnull 1
            aload 1 /* url */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack: org.springframework.jdbc.datasource.AbstractDriverBasedDataSource
         1: aconst_null
      StackMap locals: org.springframework.jdbc.datasource.AbstractDriverBasedDataSource java.lang.String
      StackMap stack: org.springframework.jdbc.datasource.AbstractDriverBasedDataSource java.lang.String
         2: putfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.url:Ljava/lang/String;
         3: .line 61
            return
        end local 1 // java.lang.String url
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
            0    4     1   url  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      url   

  public java.lang.String getUrl();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
         0: .line 68
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.url:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setUsername(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
        start local 1 // java.lang.String username
         0: .line 76
            aload 0 /* this */
            aload 1 /* username */
            putfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.username:Ljava/lang/String;
         1: .line 77
            return
        end local 1 // java.lang.String username
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
            0    2     1  username  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      username  

  public java.lang.String getUsername();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
         0: .line 84
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.username:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setPassword(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
        start local 1 // java.lang.String password
         0: .line 92
            aload 0 /* this */
            aload 1 /* password */
            putfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.password:Ljava/lang/String;
         1: .line 93
            return
        end local 1 // java.lang.String password
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
            0    2     1  password  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      password  

  public java.lang.String getPassword();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
         0: .line 100
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.password:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setCatalog(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
        start local 1 // java.lang.String catalog
         0: .line 109
            aload 0 /* this */
            aload 1 /* catalog */
            putfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.catalog:Ljava/lang/String;
         1: .line 110
            return
        end local 1 // java.lang.String catalog
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
            0    2     1  catalog  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
         Name  Flags
      catalog  

  public java.lang.String getCatalog();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
         0: .line 118
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.catalog:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setSchema(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
        start local 1 // java.lang.String schema
         0: .line 127
            aload 0 /* this */
            aload 1 /* schema */
            putfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.schema:Ljava/lang/String;
         1: .line 128
            return
        end local 1 // java.lang.String schema
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
            0    2     1  schema  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
        Name  Flags
      schema  

  public java.lang.String getSchema();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
         0: .line 136
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.schema:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void setConnectionProperties(java.util.Properties);
    descriptor: (Ljava/util/Properties;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
        start local 1 // java.util.Properties connectionProperties
         0: .line 148
            aload 0 /* this */
            aload 1 /* connectionProperties */
            putfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.connectionProperties:Ljava/util/Properties;
         1: .line 149
            return
        end local 1 // java.util.Properties connectionProperties
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
            0    2     1  connectionProperties  Ljava/util/Properties;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
                      Name  Flags
      connectionProperties  

  public java.util.Properties getConnectionProperties();
    descriptor: ()Ljava/util/Properties;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
         0: .line 156
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.connectionProperties:Ljava/util/Properties;
            areturn
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public java.sql.Connection getConnection();
    descriptor: ()Ljava/sql/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
         0: .line 169
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getUsername:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getPassword:()Ljava/lang/String;
            invokevirtual org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver:(Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
            areturn
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
    Exceptions:
      throws java.sql.SQLException

  public java.sql.Connection getConnection(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
        start local 1 // java.lang.String username
        start local 2 // java.lang.String password
         0: .line 179
            aload 0 /* this */
            aload 1 /* username */
            aload 2 /* password */
            invokevirtual org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver:(Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
            areturn
        end local 2 // java.lang.String password
        end local 1 // java.lang.String username
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
            0    1     1  username  Ljava/lang/String;
            0    1     2  password  Ljava/lang/String;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
          Name  Flags
      username  
      password  

  protected java.sql.Connection getConnectionFromDriver(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
        start local 1 // java.lang.String username
        start local 2 // java.lang.String password
         0: .line 193
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 3 /* mergedProps */
        start local 3 // java.util.Properties mergedProps
         1: .line 194
            aload 0 /* this */
            invokevirtual org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionProperties:()Ljava/util/Properties;
            astore 4 /* connProps */
        start local 4 // java.util.Properties connProps
         2: .line 195
            aload 4 /* connProps */
            ifnull 4
         3: .line 196
            aload 3 /* mergedProps */
            aload 4 /* connProps */
            invokevirtual java.util.Properties.putAll:(Ljava/util/Map;)V
         4: .line 198
      StackMap locals: java.util.Properties java.util.Properties
      StackMap stack:
            aload 1 /* username */
            ifnull 6
         5: .line 199
            aload 3 /* mergedProps */
            ldc "user"
            aload 1 /* username */
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         6: .line 201
      StackMap locals:
      StackMap stack:
            aload 2 /* password */
            ifnull 8
         7: .line 202
            aload 3 /* mergedProps */
            ldc "password"
            aload 2 /* password */
            invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            pop
         8: .line 205
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* mergedProps */
            invokevirtual org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver:(Ljava/util/Properties;)Ljava/sql/Connection;
            astore 5 /* con */
        start local 5 // java.sql.Connection con
         9: .line 206
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.catalog:Ljava/lang/String;
            ifnull 11
        10: .line 207
            aload 5 /* con */
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.catalog:Ljava/lang/String;
            invokeinterface java.sql.Connection.setCatalog:(Ljava/lang/String;)V
        11: .line 209
      StackMap locals: java.sql.Connection
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.schema:Ljava/lang/String;
            ifnull 13
        12: .line 210
            aload 5 /* con */
            aload 0 /* this */
            getfield org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.schema:Ljava/lang/String;
            invokeinterface java.sql.Connection.setSchema:(Ljava/lang/String;)V
        13: .line 212
      StackMap locals:
      StackMap stack:
            aload 5 /* con */
            areturn
        end local 5 // java.sql.Connection con
        end local 4 // java.util.Properties connProps
        end local 3 // java.util.Properties mergedProps
        end local 2 // java.lang.String password
        end local 1 // java.lang.String username
        end local 0 // org.springframework.jdbc.datasource.AbstractDriverBasedDataSource this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lorg/springframework/jdbc/datasource/AbstractDriverBasedDataSource;
            0   14     1     username  Ljava/lang/String;
            0   14     2     password  Ljava/lang/String;
            1   14     3  mergedProps  Ljava/util/Properties;
            2   14     4    connProps  Ljava/util/Properties;
            9   14     5          con  Ljava/sql/Connection;
    Exceptions:
      throws java.sql.SQLException
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      username  
      password  

  protected abstract java.sql.Connection getConnectionFromDriver(java.util.Properties);
    descriptor: (Ljava/util/Properties;)Ljava/sql/Connection;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
       Name  Flags
      props  
}
SourceFile: "AbstractDriverBasedDataSource.java"