Package org.h2.engine

Class ConnectionInfo

java.lang.Object
org.h2.engine.ConnectionInfo
All Implemented Interfaces:
Cloneable

public class ConnectionInfo extends Object implements Cloneable
Encapsulates the connection settings, including user name and password.
  • Field Details

    • KNOWN_SETTINGS

      private static final HashSet<String> KNOWN_SETTINGS
    • IGNORED_BY_PARSER

      private static final HashSet<String> IGNORED_BY_PARSER
    • prop

      private Properties prop
    • originalURL

      private String originalURL
    • url

      private String url
    • user

      private String user
    • filePasswordHash

      private byte[] filePasswordHash
    • fileEncryptionKey

      private byte[] fileEncryptionKey
    • userPasswordHash

      private byte[] userPasswordHash
    • timeZone

      private TimeZoneProvider timeZone
    • name

      private String name
      The database name
    • nameNormalized

      private String nameNormalized
    • remote

      private boolean remote
    • ssl

      private boolean ssl
    • persistent

      private boolean persistent
    • unnamed

      private boolean unnamed
    • networkConnectionInfo

      private NetworkConnectionInfo networkConnectionInfo
  • Constructor Details

    • ConnectionInfo

      public ConnectionInfo(String name)
      Create a connection info object.
      Parameters:
      name - the database name (including tags), but without the "jdbc:h2:" prefix
    • ConnectionInfo

      public ConnectionInfo(String u, Properties info, String user, Object password)
      Create a connection info object.
      Parameters:
      u - the database URL (must start with jdbc:h2:)
      info - the connection properties or null
      user - the user name or null
      password - the password as String or char[], or null
  • Method Details

    • isKnownSetting

      private static boolean isKnownSetting(String s)
    • isIgnoredByParser

      public static boolean isIgnoredByParser(String name)
      Returns whether setting with the specified name should be ignored by parser.
      Parameters:
      name - the name of the setting
      Returns:
      whether setting with the specified name should be ignored by parser
    • clone

      Overrides:
      clone in class Object
      Throws:
      CloneNotSupportedException
    • parseName

      private void parseName()
    • setBaseDir

      public void setBaseDir(String dir)
      Set the base directory of persistent databases, unless the database is in the user home folder (~).
      Parameters:
      dir - the new base directory
    • isRemote

      public boolean isRemote()
      Check if this is a remote connection.
      Returns:
      true if it is
    • isPersistent

      public boolean isPersistent()
      Check if the referenced database is persistent.
      Returns:
      true if it is
    • isUnnamedInMemory

      boolean isUnnamedInMemory()
      Check if the referenced database is an unnamed in-memory database.
      Returns:
      true if it is
    • readProperties

      private void readProperties(Properties info)
    • readSettingsFromURL

      private void readSettingsFromURL()
    • preservePasswordForAuthentication

      private void preservePasswordForAuthentication(Object password)
    • removePassword

      private char[] removePassword()
    • convertPasswords

      private void convertPasswords()
      Split the password property into file password and user password if necessary, and convert them to the internal hash format.
    • hashPassword

      private static byte[] hashPassword(boolean passwordHash, String userName, char[] password)
    • getProperty

      public boolean getProperty(String key, boolean defaultValue)
      Get a boolean property if it is set and return the value.
      Parameters:
      key - the property name
      defaultValue - the default value
      Returns:
      the value
    • removeProperty

      public boolean removeProperty(String key, boolean defaultValue)
      Remove a boolean property if it is set and return the value.
      Parameters:
      key - the property name
      defaultValue - the default value
      Returns:
      the value
    • removeProperty

      String removeProperty(String key, String defaultValue)
      Remove a String property if it is set and return the value.
      Parameters:
      key - the property name
      defaultValue - the default value
      Returns:
      the value
    • getName

      public String getName()
      Get the unique and normalized database name (excluding settings).
      Returns:
      the database name
    • getFilePasswordHash

      public byte[] getFilePasswordHash()
      Get the file password hash if it is set.
      Returns:
      the password hash or null
    • getFileEncryptionKey

      byte[] getFileEncryptionKey()
    • getUserName

      public String getUserName()
      Get the name of the user.
      Returns:
      the user name
    • getUserPasswordHash

      byte[] getUserPasswordHash()
      Get the user password hash.
      Returns:
      the password hash
    • getKeys

      String[] getKeys()
      Get the property keys.
      Returns:
      the property keys
    • getProperty

      String getProperty(String key)
      Get the value of the given property.
      Parameters:
      key - the property key
      Returns:
      the value as a String
    • getProperty

      int getProperty(String key, int defaultValue)
      Get the value of the given property.
      Parameters:
      key - the property key
      defaultValue - the default value
      Returns:
      the value as a String
    • getProperty

      public String getProperty(String key, String defaultValue)
      Get the value of the given property.
      Parameters:
      key - the property key
      defaultValue - the default value
      Returns:
      the value as a String
    • getProperty

      String getProperty(int setting, String defaultValue)
      Get the value of the given property.
      Parameters:
      setting - the setting id
      defaultValue - the default value
      Returns:
      the value as a String
    • getIntProperty

      int getIntProperty(int setting, int defaultValue)
      Get the value of the given property.
      Parameters:
      setting - the setting id
      defaultValue - the default value
      Returns:
      the value as an integer
    • isSSL

      boolean isSSL()
      Check if this is a remote connection with SSL enabled.
      Returns:
      true if it is
    • setUserName

      public void setUserName(String name)
      Overwrite the user name. The user name is case-insensitive and stored in uppercase. English conversion is used.
      Parameters:
      name - the user name
    • setUserPasswordHash

      public void setUserPasswordHash(byte[] hash)
      Set the user password hash.
      Parameters:
      hash - the new hash value
    • setFilePasswordHash

      public void setFilePasswordHash(byte[] hash)
      Set the file password hash.
      Parameters:
      hash - the new hash value
    • setFileEncryptionKey

      public void setFileEncryptionKey(byte[] key)
    • setProperty

      public void setProperty(String key, String value)
      Overwrite a property.
      Parameters:
      key - the property name
      value - the value
    • getURL

      public String getURL()
      Get the database URL.
      Returns:
      the URL
    • getOriginalURL

      public String getOriginalURL()
      Get the complete original database URL.
      Returns:
      the database URL
    • setOriginalURL

      public void setOriginalURL(String url)
      Set the original database URL.
      Parameters:
      url - the database url
    • getTimeZone

      public TimeZoneProvider getTimeZone()
      Returns the time zone.
      Returns:
      the time zone
    • getFormatException

      DbException getFormatException()
      Generate a URL format exception.
      Returns:
      the exception
    • setServerKey

      public void setServerKey(String serverKey)
      Switch to server mode, and set the server name and database key.
      Parameters:
      serverKey - the server name, '/', and the security key
    • getNetworkConnectionInfo

      public NetworkConnectionInfo getNetworkConnectionInfo()
      Returns the network connection information, or null.
      Returns:
      the network connection information, or null
    • setNetworkConnectionInfo

      public void setNetworkConnectionInfo(NetworkConnectionInfo networkConnectionInfo)
      Sets the network connection information.
      Parameters:
      networkConnectionInfo - the network connection information
    • getDbSettings

      public DbSettings getDbSettings()
    • remapURL

      private static String remapURL(String url)
    • cleanAuthenticationInfo

      public void cleanAuthenticationInfo()
      Clear authentication properties.