Class ConnectionJDBC2

  • All Implemented Interfaces:
    java.lang.AutoCloseable, java.sql.Connection, java.sql.Wrapper
    Direct Known Subclasses:
    ConnectionJDBC3

    public class ConnectionJDBC2
    extends java.lang.Object
    implements java.sql.Connection
    jTDS implementation of the java.sql.Connection interface.

    Implementation notes:

    1. Environment setting code carried over from old jTDS otherwise generally a new implementation of Connection.
    2. Connection properties and SQLException text messages are loaded from a properties file.
    3. Character set choices are also loaded from a resource file and the original Encoder class has gone.
    4. Prepared SQL statements are converted to procedures in the prepareSQL method.
    5. Use of Stored procedures is optional and controlled via connection property.
    6. This Connection object maintains a table of weak references to associated statements. This allows the connection object to control the statements (for example to close them) but without preventing them being garbage collected in a pooled environment.
    Version:
    $Id: ConnectionJDBC2.java,v 1.119.2.12 2009/12/30 11:37:21 ickzon Exp $
    Author:
    Mike Hutchinson, Alin Sinpalean
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String appName
      The application name.
      private boolean autoCommit
      Default auto commit state.
      private TdsCore baseTds
      The cored TDS protocol object.
      private int batchSize
      The maximum size of a batch.
      private java.lang.String bindAddress
      The local address to bind to when connecting to a database via TCP/IP.
      private java.io.File bufferDir
      The directory to buffer data to
      private int bufferMaxMemory
      The global buffer memory limit for all connections (in kilobytes).
      private int bufferMinPackets
      The minimum number of packets per statement to buffer to memory.
      private TdsCore cachedTds
      A cached TdsCore instance to reuse on new statements.
      private CharsetInfo charsetInfo
      Java charset for encoding.
      private boolean charsetSpecified
      True if user specifies an explicit charset.
      private boolean closed
      True if this connection is closed.
      private byte[] collation
      SQL Server 2000 collation.
      private static int connections
      the number of currently open connections
      private java.lang.String currentDatabase
      The current database name.
      private int cursorSequenceNo
      Cursor unique ID number.
      private int databaseMajorVersion
      The major version number eg 11.
      private int databaseMinorVersion
      The minor version number eg 92.
      private java.lang.String databaseName
      The requested database name.
      private java.lang.String databaseProductName
      The database product name eg SQL SERVER.
      private java.lang.String databaseProductVersion
      The product version eg 11.92.
      private java.lang.String domainName
      The Windows Domain name.
      private java.lang.String instanceName
      The SQL Server instance.
      private java.lang.String language
      The server message language.
      private boolean lastUpdateCount
      Only return the last update count.
      private long lobBuffer
      The amount of LOB data to buffer in memory.
      private int loginTimeout
      Login timeout value in seconds or 0.
      private java.lang.String macAddress
      The client MAC Address.
      private int maxPrecision
      Maximum decimal precision.
      private int maxStatements
      The maximum number of statements to keep open.
      private SQLDiagnostic messages
      Diagnostc messages for this connection.
      private Semaphore mutex
      Mutual exclusion lock to control access to connection.
      private boolean namedPipe
      Use named pipe IPC instead of TCP/IP sockets.
      private int netPacketSize
      The initial network packet size.
      private int packetSize
      User requested packet size.
      private java.lang.String password
      The user password.
      private int portNumber
      The server port number.
      private int prepareSql
      Method for preparing SQL used in Prepared Statements.
      private static java.lang.Integer processId
      The process ID to report to a server when connecting.
      private java.util.ArrayList procInTran
      Procedures in this transaction.
      private java.lang.String progName
      The program name.
      private boolean readOnly
      True if this connection is read only.
      private int rowCount
      Connection's current rowcount limit.
      private java.lang.String serverCharset
      The server character set.
      private java.lang.String serverName
      The server host name.
      private int serverType
      The make of SQL Server (sybase/microsoft).
      private SharedSocket socket
      The network TCP/IP socket.
      private boolean socketKeepAlive
      True to enable socket keep alive.
      private int socketTimeout
      Socket timeout value in seconds or 0.
      private int spSequenceNo
      Stored procedure unique ID number.
      private static java.lang.String SQL_SERVER_65_CHARSET_QUERY
      SQL query to determine the server charset on MS SQL Server 6.5.
      private static java.lang.String SQL_SERVER_INITIAL_SQL
      SQL Server initial connection string.
      private java.lang.String ssl
      SSL setting.
      private StatementCache statementCache
      Statement cache.
      private java.util.ArrayList statements
      List of statements associated with this connection.
      private static java.lang.String SYBASE_INITIAL_SQL
      Sybase initial connection string.
      private static java.lang.String SYBASE_SERVER_CHARSET_QUERY
      SQL query to determine the server charset on Sybase.
      private int sybaseInfo
      Sybase capability mask.
      private boolean tcpNoDelay
      TCP_NODELAY
      private int tdsVersion
      The server protocol version.
      private int textSize
      Connection's current maximum field size limit.
      static int TRANSACTION_SNAPSHOT
      SQL Server custom transaction isolation level.
      private int transactionIsolation
      Default transaction isolation level.
      private java.lang.String url
      The orginal connection URL.
      private boolean useCursors
      Use fast forward cursors for forward only result sets.
      private boolean useJCIFS
      Force use of jCIFS library on Windows when connecting via named pipes.
      private boolean useLOBs
      Map large types (IMAGE and TEXT/NTEXT) to LOBs by default.
      private boolean useMetadataCache
      Use metadata cache for prepared statements.
      private boolean useNTLMv2
      When doing NTLM authentication, send NTLMv2 response rather than regular response
      private java.lang.String user
      The database user ID.
      private boolean useUnicode
      Send parameters as unicode.
      private java.lang.String wsid
      Workstation ID.
      private boolean xaEmulation
      True if driver should emulate distributed transactions.
      private int xaState
      Current emulated XA State eg start/end/prepare etc.
      private boolean xaTransaction
      True if running distributed transaction.
      private java.lang.Object xid
      Current XA Transaction ID.
      • Fields inherited from interface java.sql.Connection

        TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private ConnectionJDBC2()
      Default constructor.
      (package private) ConnectionJDBC2​(java.lang.String url, java.util.Properties info)
      Create a new database connection.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void abort​(java.util.concurrent.Executor executor)  
      (package private) void addCachedProcedure​(java.lang.String key, ProcEntry proc)
      Add a stored procedure to the cache.
      (package private) void addStatement​(JtdsStatement statement)
      Adds a statement object to the list maintained by the connection.
      (package private) void checkLocal​(java.lang.String method)
      Checks that this connection is in local transaction mode.
      (package private) void checkOpen()
      Checks that the connection is still open.
      (package private) void clearSavepoints()
      Releases all savepoints.
      void clearWarnings()  
      void close()
      Releases this Connection object's database and JDBC resources immediately instead of waiting for them to be automatically released.
      void commit()  
      java.sql.Array createArrayOf​(java.lang.String typeName, java.lang.Object[] elements)  
      java.sql.Blob createBlob()  
      java.sql.Clob createClob()  
      private SharedSocket createNamedPipe​(ConnectionJDBC2 connection)
      Creates a SharedSocket object representing a connection to a named pipe.
      java.sql.NClob createNClob()  
      java.sql.SQLXML createSQLXML()  
      java.sql.Statement createStatement()  
      java.sql.Statement createStatement​(int type, int concurrency)  
      java.sql.Statement createStatement​(int type, int concurrency, int holdability)  
      java.sql.Struct createStruct​(java.lang.String typeName, java.lang.Object[] attributes)  
      private java.lang.String determineServerCharset()
      Discovers the server charset for server versions that do not send ENVCHANGE packets on login ack, by executing a DB vendor/version specific query.
      (package private) void enlistConnection​(byte[] oleTranID)
      Enlists the current connection in a distributed transaction.
      protected void finalize()
      Ensure all resources are released.
      (package private) java.lang.String getAppName()
      Retrieves the application name for this connection.
      boolean getAutoCommit()  
      (package private) int getBatchSize()
      Retrieves the batch size to be used internally.
      (package private) java.lang.String getBindAddress()
      Retrieves the bind address for this connection.
      (package private) java.io.File getBufferDir()
      Returns the directory where data should be buffered to.
      (package private) int getBufferMaxMemory()
      Retrieves the maximum amount of memory in Kb to buffer for all connections.
      (package private) int getBufferMinPackets()
      Retrieves the minimum number of packets to buffer per Statement for this connection.
      (package private) TdsCore getCachedTds()
      Retrieves the cached TdsCore or null if nothing is cached and resets the cache (sets it to null).
      java.lang.String getCatalog()  
      protected java.lang.String getCharset()
      Retrieve the Java charset to use for encoding.
      protected CharsetInfo getCharsetInfo()
      Retrieve the CharsetInfo instance used by this connection.
      java.util.Properties getClientInfo()  
      java.lang.String getClientInfo​(java.lang.String name)  
      (package private) byte[] getCollation()
      Retrieve the SQL Server 2000 default collation.
      (package private) java.lang.String getCursorName()
      Retrieves the next unique cursor name.
      int getDatabaseMajorVersion()
      Retrieves the DBMS major version.
      int getDatabaseMinorVersion()
      Retrieves the DBMS minor version.
      (package private) java.lang.String getDatabaseName()
      Retrieves the database name for this connection.
      (package private) java.lang.String getDatabaseProductName()
      Retrieves the DBMS product name.
      (package private) java.lang.String getDatabaseProductVersion()
      Retrieves the DBMS product version.
      (package private) java.lang.String getDomainName()
      Retrieves the domain name for this connection.
      int getHoldability()  
      (package private) java.lang.String getInstanceName()
      Retrieves the instance name for this connection.
      (package private) boolean getLastUpdateCount()
      Retrieves the status of the lastUpdateCount flag.
      (package private) long getLobBuffer()
      Retrieves the LOB buffer size.
      (package private) int getLoginTimeout()
      Retrieves the login timeout for this connection.
      (package private) java.lang.String getMacAddress()
      Retrieves the MAC (ethernet) address for this connection.
      (package private) int getMaxPrecision()
      Retrieves the maximum decimal precision.
      (package private) int getMaxStatements()
      Retrieves the maximum statement cache size.
      java.sql.DatabaseMetaData getMetaData()  
      (package private) Semaphore getMutex()
      Retrieves the connection mutex and acquires an exclusive lock on the network connection.
      (package private) boolean getNamedPipe()
      Retrieves the named pipe setting for this connection.
      (package private) int getNetPacketSize()
      Retrieves the network packet size.
      int getNetworkTimeout()  
      (package private) int getPacketSize()
      Retrieves the packet size for this connection.
      (package private) java.lang.String getPassword()
      Retrieves the password for this connection.
      (package private) int getPortNumber()
      Retrieves the port number for this connection.
      (package private) int getPrepareSql()
      Retrieves the Prepared SQL method.
      (package private) int getProcessId()
      Retrieves the process ID to send to a server when a connection is established.
      (package private) java.lang.String getProcName()
      Retrieves the next unique stored procedure name.
      (package private) java.lang.String getProgName()
      Retrieves the program name for this connection.
      java.lang.String getRmHost()
      Retrieves the host and port for this connection.
      (package private) int getRowCount()
      Retrieves the current row count on this connection.
      java.lang.String getSchema()  
      (package private) java.lang.String getServerName()
      Retrieves the server name for this connection.
      int getServerType()
      Retrieves the server type.
      (package private) SharedSocket getSocket()
      Retrive the shared socket.
      (package private) boolean getSocketKeepAlive()
      Retrieves whether to enable socket keep alive.
      (package private) int getSocketTimeout()
      Retrieves the socket timeout for this connection.
      protected boolean getSybaseInfo​(int flag)
      Retrieve the Sybase capability data.
      (package private) boolean getTcpNoDelay()
      Retrieves the tcpNoDelay setting for this connection.
      (package private) int getTdsVersion()
      Retrieve the TDS protocol version.
      int getTextSize()
      Retrieves the current maximum textsize on this connection.
      int getTransactionIsolation()  
      java.util.Map getTypeMap()  
      (package private) java.lang.String getURL()
      Retrieves the original connection URL.
      (package private) boolean getUseCursors()
      Indicates whether fast forward only cursors should be used for forward only result sets.
      (package private) boolean getUseJCIFS()
      Retrieves the useJCIFS setting for this connection.
      (package private) boolean getUseLOBs()
      Indicates whether large types (IMAGE and TEXT/NTEXT) should be mapped by default to LOB types or String and byte[] respectively.
      (package private) boolean getUseMetadataCache()
      Retrieves the boolean indicating whether metadata caching is enabled.
      (package private) boolean getUseNTLMv2()
      Indicates whether, when doing Windows authentication to an MS SQL server, NTLMv2 should be used.
      (package private) java.lang.String getUser()
      Retrieves the user for this connection.
      protected boolean getUseUnicode()
      Retrieve the sendParametersAsUnicode flag.
      java.sql.SQLWarning getWarnings()  
      (package private) java.lang.String getWsid()
      Retrieves the workstation ID (WSID) for this connection.
      (package private) int getXaState()
      Retrieves the XA state variable.
      (package private) java.lang.Object getXid()
      Gets the XA transaction ID when running in emulation mode.
      (package private) boolean isCharsetSpecified()
      Retrieves whether a specific charset was requested on creation.
      boolean isClosed()  
      boolean isReadOnly()  
      boolean isValid​(int timeout)  
      protected boolean isWideChar()
      Retrieve the multibyte status of the current character set.
      boolean isWrapperFor​(java.lang.Class arg0)  
      (package private) boolean isXaEmulation()
      Retrieves the XA Emulation flag.
      private void loadCharset​(java.lang.String charset)
      Load the Java charset to match the server character set.
      private void loadCharset​(CharsetInfo ci, java.lang.String ref)
      Load the Java charset to match the server character set.
      java.lang.String nativeSQL​(java.lang.String sql)  
      (package private) static void notImplemented​(java.lang.String method)
      Reports that user tried to call a method which has not been implemented.
      private static boolean parseBooleanProperty​(java.util.Properties info, java.lang.String key)
      Parse a string property value into an boolean value.
      private static int parseIntegerProperty​(java.util.Properties info, java.lang.String key)
      Parse a string property value into an integer value.
      private static long parseLongProperty​(java.util.Properties info, java.lang.String key)
      Parse a string property value into a long value.
      java.sql.CallableStatement prepareCall​(java.lang.String sql)  
      java.sql.CallableStatement prepareCall​(java.lang.String sql, int type, int concurrency)  
      java.sql.CallableStatement prepareCall​(java.lang.String sql, int type, int concurrency, int holdability)  
      (package private) java.lang.String prepareSQL​(JtdsPreparedStatement pstmt, java.lang.String sql, ParamInfo[] params, boolean returnKeys, boolean cursorNeeded)
      Try to convert the SQL statement into a statement prepare.
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql)  
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int autoGeneratedKeys)  
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int[] columnIndexes)  
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int type, int concurrency)  
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, int type, int concurrency, int holdability)  
      java.sql.PreparedStatement prepareStatement​(java.lang.String sql, java.lang.String[] columnNames)  
      void releaseSavepoint​(java.sql.Savepoint savepoint)  
      (package private) void releaseTds​(TdsCore tds)
      Releases (either closes or caches) a TdsCore.
      (package private) void removeCachedProcedure​(java.lang.String key)
      Remove a stored procedure from the cache.
      (package private) void removeStatement​(JtdsStatement statement)
      Removes a statement object from the list maintained by the connection and cleans up the statement cache if necessary.
      void rollback()  
      void rollback​(java.sql.Savepoint savepoint)  
      (package private) byte[][] sendXaPacket​(int[] args, byte[] data)
      Invokes the xp_jtdsxa extended stored procedure on the server.
      void setAutoCommit​(boolean autoCommit)  
      void setCatalog​(java.lang.String catalog)  
      void setClientInfo​(java.lang.String name, java.lang.String value)  
      void setClientInfo​(java.util.Properties properties)  
      (package private) void setClosed()
      Forces the closed status on the statement if an I/O error has occurred.
      (package private) void setCollation​(byte[] collation)
      Set the default collation for this connection.
      protected void setDatabase​(java.lang.String newDb, java.lang.String oldDb)
      Called by the protcol to change the current database context.
      protected void setDBServerInfo​(java.lang.String databaseProductName, int databaseMajorVersion, int databaseMinorVersion, int buildNumber)
      Update the connection instance with information about the server.
      void setHoldability​(int holdability)  
      (package private) void setNetPacketSize​(int size)
      Sets the network packet size.
      void setNetworkTimeout​(java.util.concurrent.Executor executor, int milliseconds)  
      void setReadOnly​(boolean readOnly)  
      (package private) void setRowCount​(int count)
      Sets the current row count on this connection.
      java.sql.Savepoint setSavepoint()  
      java.sql.Savepoint setSavepoint​(java.lang.String name)  
      void setSchema​(java.lang.String schema)  
      protected void setServerCharset​(java.lang.String charset)
      Called by the protocol to change the current character set.
      protected void setSybaseInfo​(int mask)
      Set the Sybase capability data.
      void setTextSize​(int textSize)
      Sets the current maximum textsize on this connection.
      void setTransactionIsolation​(int level)  
      void setTypeMap​(java.util.Map map)  
      (package private) void setXaState​(int value)
      Sets the XA state variable.
      (package private) void setXid​(java.lang.Object xid)
      Sets the XA transaction ID when running in emulation mode.
      protected void unpackProperties​(java.util.Properties info)
      Transfers the properties to the local instance variables.
      java.lang.Object unwrap​(java.lang.Class arg0)  
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.sql.Connection

        beginRequest, endRequest, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValid
    • Field Detail

      • SYBASE_SERVER_CHARSET_QUERY

        private static final java.lang.String SYBASE_SERVER_CHARSET_QUERY
        SQL query to determine the server charset on Sybase.
        See Also:
        Constant Field Values
      • SQL_SERVER_65_CHARSET_QUERY

        private static final java.lang.String SQL_SERVER_65_CHARSET_QUERY
        SQL query to determine the server charset on MS SQL Server 6.5.
        See Also:
        Constant Field Values
      • SYBASE_INITIAL_SQL

        private static final java.lang.String SYBASE_INITIAL_SQL
        Sybase initial connection string.
        See Also:
        Constant Field Values
      • SQL_SERVER_INITIAL_SQL

        private static final java.lang.String SQL_SERVER_INITIAL_SQL
        SQL Server initial connection string. Also contains a SELECT @@MAX_PRECISION query to retrieve the maximum precision for DECIMAL/NUMERIC data.
        See Also:
        Constant Field Values
      • TRANSACTION_SNAPSHOT

        public static final int TRANSACTION_SNAPSHOT
        SQL Server custom transaction isolation level.
        See Also:
        Constant Field Values
      • url

        private final java.lang.String url
        The orginal connection URL.
      • serverName

        private java.lang.String serverName
        The server host name.
      • portNumber

        private int portNumber
        The server port number.
      • serverType

        private int serverType
        The make of SQL Server (sybase/microsoft).
      • instanceName

        private java.lang.String instanceName
        The SQL Server instance.
      • databaseName

        private java.lang.String databaseName
        The requested database name.
      • currentDatabase

        private java.lang.String currentDatabase
        The current database name.
      • domainName

        private java.lang.String domainName
        The Windows Domain name.
      • user

        private java.lang.String user
        The database user ID.
      • password

        private java.lang.String password
        The user password.
      • serverCharset

        private java.lang.String serverCharset
        The server character set.
      • appName

        private java.lang.String appName
        The application name.
      • progName

        private java.lang.String progName
        The program name.
      • wsid

        private java.lang.String wsid
        Workstation ID.
      • language

        private java.lang.String language
        The server message language.
      • macAddress

        private java.lang.String macAddress
        The client MAC Address.
      • tdsVersion

        private int tdsVersion
        The server protocol version.
      • socket

        private final SharedSocket socket
        The network TCP/IP socket.
      • baseTds

        private final TdsCore baseTds
        The cored TDS protocol object.
      • netPacketSize

        private int netPacketSize
        The initial network packet size.
      • packetSize

        private int packetSize
        User requested packet size.
      • collation

        private byte[] collation
        SQL Server 2000 collation.
      • charsetSpecified

        private boolean charsetSpecified
        True if user specifies an explicit charset.
      • databaseProductName

        private java.lang.String databaseProductName
        The database product name eg SQL SERVER.
      • databaseProductVersion

        private java.lang.String databaseProductVersion
        The product version eg 11.92.
      • databaseMajorVersion

        private int databaseMajorVersion
        The major version number eg 11.
      • databaseMinorVersion

        private int databaseMinorVersion
        The minor version number eg 92.
      • closed

        private boolean closed
        True if this connection is closed.
      • readOnly

        private boolean readOnly
        True if this connection is read only.
      • statements

        private final java.util.ArrayList statements
        List of statements associated with this connection.
      • transactionIsolation

        private int transactionIsolation
        Default transaction isolation level.
      • autoCommit

        private boolean autoCommit
        Default auto commit state.
      • messages

        private final SQLDiagnostic messages
        Diagnostc messages for this connection.
      • rowCount

        private int rowCount
        Connection's current rowcount limit.
      • textSize

        private int textSize
        Connection's current maximum field size limit.
      • maxPrecision

        private int maxPrecision
        Maximum decimal precision.
      • spSequenceNo

        private int spSequenceNo
        Stored procedure unique ID number.
      • cursorSequenceNo

        private int cursorSequenceNo
        Cursor unique ID number.
      • procInTran

        private final java.util.ArrayList procInTran
        Procedures in this transaction.
      • charsetInfo

        private CharsetInfo charsetInfo
        Java charset for encoding.
      • prepareSql

        private int prepareSql
        Method for preparing SQL used in Prepared Statements.
      • lobBuffer

        private long lobBuffer
        The amount of LOB data to buffer in memory.
      • maxStatements

        private int maxStatements
        The maximum number of statements to keep open.
      • statementCache

        private StatementCache statementCache
        Statement cache.
      • useUnicode

        private boolean useUnicode
        Send parameters as unicode.
      • namedPipe

        private boolean namedPipe
        Use named pipe IPC instead of TCP/IP sockets.
      • lastUpdateCount

        private boolean lastUpdateCount
        Only return the last update count.
      • tcpNoDelay

        private boolean tcpNoDelay
        TCP_NODELAY
      • loginTimeout

        private int loginTimeout
        Login timeout value in seconds or 0.
      • sybaseInfo

        private int sybaseInfo
        Sybase capability mask.
      • xaTransaction

        private boolean xaTransaction
        True if running distributed transaction.
      • xaState

        private int xaState
        Current emulated XA State eg start/end/prepare etc.
      • xid

        private java.lang.Object xid
        Current XA Transaction ID.
      • xaEmulation

        private boolean xaEmulation
        True if driver should emulate distributed transactions.
      • mutex

        private final Semaphore mutex
        Mutual exclusion lock to control access to connection.
      • socketTimeout

        private int socketTimeout
        Socket timeout value in seconds or 0.
      • socketKeepAlive

        private boolean socketKeepAlive
        True to enable socket keep alive.
      • processId

        private static java.lang.Integer processId
        The process ID to report to a server when connecting.
      • ssl

        private java.lang.String ssl
        SSL setting.
      • batchSize

        private int batchSize
        The maximum size of a batch.
      • useMetadataCache

        private boolean useMetadataCache
        Use metadata cache for prepared statements.
      • useCursors

        private boolean useCursors
        Use fast forward cursors for forward only result sets.
      • bufferDir

        private java.io.File bufferDir
        The directory to buffer data to
      • bufferMaxMemory

        private int bufferMaxMemory
        The global buffer memory limit for all connections (in kilobytes).
      • bufferMinPackets

        private int bufferMinPackets
        The minimum number of packets per statement to buffer to memory.
      • useLOBs

        private boolean useLOBs
        Map large types (IMAGE and TEXT/NTEXT) to LOBs by default.
      • cachedTds

        private TdsCore cachedTds
        A cached TdsCore instance to reuse on new statements.
      • bindAddress

        private java.lang.String bindAddress
        The local address to bind to when connecting to a database via TCP/IP.
      • useJCIFS

        private boolean useJCIFS
        Force use of jCIFS library on Windows when connecting via named pipes.
      • useNTLMv2

        private boolean useNTLMv2
        When doing NTLM authentication, send NTLMv2 response rather than regular response
      • connections

        private static int connections
        the number of currently open connections
    • Constructor Detail

      • ConnectionJDBC2

        private ConnectionJDBC2()
        Default constructor.

        Used for testing.

      • ConnectionJDBC2

        ConnectionJDBC2​(java.lang.String url,
                        java.util.Properties info)
                 throws java.sql.SQLException
        Create a new database connection.
        Parameters:
        url - The connection URL starting jdbc:jtds:.
        info - The additional connection properties.
        Throws:
        java.sql.SQLException
    • Method Detail

      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Ensure all resources are released.
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.Throwable
      • createNamedPipe

        private SharedSocket createNamedPipe​(ConnectionJDBC2 connection)
                                      throws java.io.IOException
        Creates a SharedSocket object representing a connection to a named pipe. If the os.name system property starts with "Windows" (case-insensitive) and the useJCIFS parameter is false, a SharedLocalNamedPipe object is created. Else a SharedNamedPipe is created which uses jCIFS to provide a pure-Java implementation of Windows named pipes.

        This method will retry for loginTimeout seconds to create a named pipe if an IOException continues to be thrown stating, "All pipe instances are busy". If loginTimeout is set to zero (e.g., not set), a default of 20 seconds will be used.

        Parameters:
        connection - the connection object
        Returns:
        an object representing the named pipe connection
        Throws:
        java.io.IOException - on error; if an IOException is thrown with a message stating "All pipe instances are busy", then the method timed out after loginTimeout milliseconds attempting to create a named pipe.
      • getSocket

        SharedSocket getSocket()
        Retrive the shared socket.
        Returns:
        The SharedSocket object.
      • getTdsVersion

        int getTdsVersion()
        Retrieve the TDS protocol version.
        Returns:
        The TDS version as an int.
      • getCursorName

        java.lang.String getCursorName()
        Retrieves the next unique cursor name.
        Returns:
        the next cursor name as a String
      • prepareSQL

        java.lang.String prepareSQL​(JtdsPreparedStatement pstmt,
                                    java.lang.String sql,
                                    ParamInfo[] params,
                                    boolean returnKeys,
                                    boolean cursorNeeded)
                             throws java.sql.SQLException
        Try to convert the SQL statement into a statement prepare.

        Synchronized because it accesses the procedure cache and the baseTds, but the method call also needs to made in a synchronized (connection) block together with the execution (if the prepared statement is actually executed) to ensure the transaction isn't rolled back between this method call and the actual execution.

        Parameters:
        pstmt - the target prepared statement
        sql - the SQL statement to prepare
        params - the parameters
        returnKeys - indicates whether the statement will return generated keys
        cursorNeeded - indicates whether a cursor prepare is needed
        Returns:
        the SQL procedure name as a String or null if the SQL cannot be prepared
        Throws:
        java.sql.SQLException
      • addCachedProcedure

        void addCachedProcedure​(java.lang.String key,
                                ProcEntry proc)
        Add a stored procedure to the cache.

        Not explicitly synchronized because it's only called by synchronized methods.

        Parameters:
        key - The signature of the procedure to cache.
        proc - The stored procedure descriptor.
      • removeCachedProcedure

        void removeCachedProcedure​(java.lang.String key)
        Remove a stored procedure from the cache.

        Not explicitly synchronized because it's only called by synchronized methods.

        Parameters:
        key - The signature of the procedure to remove from the cache.
      • getMaxStatements

        int getMaxStatements()
        Retrieves the maximum statement cache size.
        Returns:
        the maximum statement cache size
      • getServerType

        public int getServerType()
        Retrieves the server type.
        Returns:
        the server type as an int where 1 == SQLSERVER and 2 == SYBASE.
      • setNetPacketSize

        void setNetPacketSize​(int size)
        Sets the network packet size.
        Parameters:
        size - the new packet size
      • getNetPacketSize

        int getNetPacketSize()
        Retrieves the network packet size.
        Returns:
        the packet size as an int
      • getRowCount

        int getRowCount()
        Retrieves the current row count on this connection.
        Returns:
        the row count as an int
      • setRowCount

        void setRowCount​(int count)
        Sets the current row count on this connection.
        Parameters:
        count - the new row count
      • getTextSize

        public int getTextSize()
        Retrieves the current maximum textsize on this connection.
        Returns:
        the maximum textsize as an int
      • setTextSize

        public void setTextSize​(int textSize)
        Sets the current maximum textsize on this connection.
        Parameters:
        textSize - the new maximum textsize
      • getLastUpdateCount

        boolean getLastUpdateCount()
        Retrieves the status of the lastUpdateCount flag.
        Returns:
        the lastUpdateCount flag as a boolean
      • getMaxPrecision

        int getMaxPrecision()
        Retrieves the maximum decimal precision.
        Returns:
        the precision as an int
      • getLobBuffer

        long getLobBuffer()
        Retrieves the LOB buffer size.
        Returns:
        the LOB buffer size as a long
      • getPrepareSql

        int getPrepareSql()
        Retrieves the Prepared SQL method.
        Returns:
        the Prepared SQL method
      • getBatchSize

        int getBatchSize()
        Retrieves the batch size to be used internally.
        Returns:
        the batch size as an int
      • getUseMetadataCache

        boolean getUseMetadataCache()
        Retrieves the boolean indicating whether metadata caching is enabled.
        Returns:
        true if metadata caching is enabled, false if caching is disabled
      • getUseCursors

        boolean getUseCursors()
        Indicates whether fast forward only cursors should be used for forward only result sets.
        Returns:
        true if fast forward cursors are requested
      • getUseLOBs

        boolean getUseLOBs()
        Indicates whether large types (IMAGE and TEXT/NTEXT) should be mapped by default to LOB types or String and byte[] respectively.
        Returns:
        true if the default mapping should be to LOBs, false otherwise
      • getUseNTLMv2

        boolean getUseNTLMv2()
        Indicates whether, when doing Windows authentication to an MS SQL server, NTLMv2 should be used. When this is set to "false", LM and NTLM responses are sent to the server, which should work fine in most cases. However, some servers are configured to require LMv2 and NTLMv2. In these rare cases, this property should be set to "true".
      • getAppName

        java.lang.String getAppName()
        Retrieves the application name for this connection.
        Returns:
        the application name
      • getBindAddress

        java.lang.String getBindAddress()
        Retrieves the bind address for this connection.
        Returns:
        the bind address
      • getBufferDir

        java.io.File getBufferDir()
        Returns the directory where data should be buffered to.
        Returns:
        the directory where data should be buffered to.
      • getBufferMaxMemory

        int getBufferMaxMemory()
        Retrieves the maximum amount of memory in Kb to buffer for all connections.
        Returns:
        the maximum amount of memory in Kb to buffer for all connections
      • getBufferMinPackets

        int getBufferMinPackets()
        Retrieves the minimum number of packets to buffer per Statement for this connection.
        Returns:
        the minimum number of packets to buffer per Statement
      • getDatabaseName

        java.lang.String getDatabaseName()
        Retrieves the database name for this connection.
        Returns:
        the database name
      • getDomainName

        java.lang.String getDomainName()
        Retrieves the domain name for this connection.
        Returns:
        the domain name
      • getInstanceName

        java.lang.String getInstanceName()
        Retrieves the instance name for this connection.
        Returns:
        the instance name
      • getLoginTimeout

        int getLoginTimeout()
        Retrieves the login timeout for this connection.
        Returns:
        the login timeout
      • getSocketTimeout

        int getSocketTimeout()
        Retrieves the socket timeout for this connection.
        Returns:
        the socket timeout
      • getSocketKeepAlive

        boolean getSocketKeepAlive()
        Retrieves whether to enable socket keep alive.
        Returns:
        true if the socket keep alive is enabled
      • getProcessId

        int getProcessId()
        Retrieves the process ID to send to a server when a connection is established.
        Returns:
        the process ID
      • getMacAddress

        java.lang.String getMacAddress()
        Retrieves the MAC (ethernet) address for this connection.
        Returns:
        the MAC (ethernet) address
      • getNamedPipe

        boolean getNamedPipe()
        Retrieves the named pipe setting for this connection.
        Returns:
        the named pipe setting
      • getPacketSize

        int getPacketSize()
        Retrieves the packet size for this connection.
        Returns:
        the packet size
      • getPassword

        java.lang.String getPassword()
        Retrieves the password for this connection.
        Returns:
        the password
      • getPortNumber

        int getPortNumber()
        Retrieves the port number for this connection.
        Returns:
        the port number
      • getProgName

        java.lang.String getProgName()
        Retrieves the program name for this connection.
        Returns:
        the program name
      • getServerName

        java.lang.String getServerName()
        Retrieves the server name for this connection.
        Returns:
        the server name
      • getTcpNoDelay

        boolean getTcpNoDelay()
        Retrieves the tcpNoDelay setting for this connection.
        Returns:
        the tcpNoDelay setting
      • getUseJCIFS

        boolean getUseJCIFS()
        Retrieves the useJCIFS setting for this connection.
        Returns:
        the useJCIFS setting
      • getUser

        java.lang.String getUser()
        Retrieves the user for this connection.
        Returns:
        the user
      • getWsid

        java.lang.String getWsid()
        Retrieves the workstation ID (WSID) for this connection.
        Returns:
        the workstation ID (WSID)
      • unpackProperties

        protected void unpackProperties​(java.util.Properties info)
                                 throws java.sql.SQLException
        Transfers the properties to the local instance variables.
        Parameters:
        info - The connection properties Object.
        Throws:
        java.sql.SQLException - If an invalid property value is found.
      • parseBooleanProperty

        private static boolean parseBooleanProperty​(java.util.Properties info,
                                                    java.lang.String key)
                                             throws java.sql.SQLException
        Parse a string property value into an boolean value.
        Parameters:
        info - The connection properties object.
        key - The message key used to retrieve the property name.
        Returns:
        The boolean value of the string property value.
        Throws:
        java.sql.SQLException - If the property value can't be parsed.
      • parseIntegerProperty

        private static int parseIntegerProperty​(java.util.Properties info,
                                                java.lang.String key)
                                         throws java.sql.SQLException
        Parse a string property value into an integer value.
        Parameters:
        info - The connection properties object.
        key - The message key used to retrieve the property name.
        Returns:
        The integer value of the string property value.
        Throws:
        java.sql.SQLException - If the property value can't be parsed.
      • parseLongProperty

        private static long parseLongProperty​(java.util.Properties info,
                                              java.lang.String key)
                                       throws java.sql.SQLException
        Parse a string property value into a long value.
        Parameters:
        info - The connection properties object.
        key - The message key used to retrieve the property name.
        Returns:
        The long value of the string property value.
        Throws:
        java.sql.SQLException - If the property value can't be parsed.
      • getCharset

        protected java.lang.String getCharset()
        Retrieve the Java charset to use for encoding.
        Returns:
        the Charset name as a String
      • isWideChar

        protected boolean isWideChar()
        Retrieve the multibyte status of the current character set.
        Returns:
        boolean true if a multi byte character set
      • getCharsetInfo

        protected CharsetInfo getCharsetInfo()
        Retrieve the CharsetInfo instance used by this connection.
        Returns:
        the default CharsetInfo for this connection
      • getUseUnicode

        protected boolean getUseUnicode()
        Retrieve the sendParametersAsUnicode flag.
        Returns:
        boolean true if parameters should be sent as unicode.
      • getSybaseInfo

        protected boolean getSybaseInfo​(int flag)
        Retrieve the Sybase capability data.
        Returns:
        Capability bit mask as an int.
      • setSybaseInfo

        protected void setSybaseInfo​(int mask)
        Set the Sybase capability data.
        Parameters:
        mask - The capability bit mask.
      • setServerCharset

        protected void setServerCharset​(java.lang.String charset)
                                 throws java.sql.SQLException
        Called by the protocol to change the current character set.
        Parameters:
        charset - the server character set name
        Throws:
        java.sql.SQLException
      • loadCharset

        private void loadCharset​(java.lang.String charset)
                          throws java.sql.SQLException
        Load the Java charset to match the server character set.
        Parameters:
        charset - the server character set
        Throws:
        java.sql.SQLException
      • loadCharset

        private void loadCharset​(CharsetInfo ci,
                                 java.lang.String ref)
                          throws java.sql.SQLException
        Load the Java charset to match the server character set.
        Parameters:
        ci - the CharsetInfo to load
        Throws:
        java.sql.SQLException
      • determineServerCharset

        private java.lang.String determineServerCharset()
                                                 throws java.sql.SQLException
        Discovers the server charset for server versions that do not send ENVCHANGE packets on login ack, by executing a DB vendor/version specific query.

        Will throw an SQLException if used on SQL Server 7.0 or 2000; the idea is that the charset should already be determined from ENVCHANGE packets for these DB servers.

        Should only be called from the constructor.

        Returns:
        the default server charset
        Throws:
        java.sql.SQLException - if an error condition occurs
      • setCollation

        void setCollation​(byte[] collation)
                   throws java.sql.SQLException
        Set the default collation for this connection.

        Set by a SQL Server 2000 environment change packet. The collation consists of the following fields:

        • bits 0-19 - The locale eg 0x0409 for US English which maps to code page 1252 (Latin1_General).
        • bits 20-31 - Reserved.
        • bits 32-39 - Sort order (csid from syscharsets)
        If the sort order is non-zero it determines the character set, otherwise the character set is determined by the locale id.
        Parameters:
        collation - The new collation.
        Throws:
        java.sql.SQLException
      • getCollation

        byte[] getCollation()
        Retrieve the SQL Server 2000 default collation.
        Returns:
        The collation as a byte[5].
      • isCharsetSpecified

        boolean isCharsetSpecified()
        Retrieves whether a specific charset was requested on creation. If this is the case, all character data should be encoded/decoded using that charset.
      • setDatabase

        protected void setDatabase​(java.lang.String newDb,
                                   java.lang.String oldDb)
                            throws java.sql.SQLException
        Called by the protcol to change the current database context.
        Parameters:
        newDb - The new database selected on the server.
        oldDb - The old database as known by the server.
        Throws:
        java.sql.SQLException
      • setDBServerInfo

        protected void setDBServerInfo​(java.lang.String databaseProductName,
                                       int databaseMajorVersion,
                                       int databaseMinorVersion,
                                       int buildNumber)
        Update the connection instance with information about the server.
        Parameters:
        databaseProductName - The server name eg SQL Server.
        databaseMajorVersion - The major version eg 11
        databaseMinorVersion - The minor version eg 92
        buildNumber - The server build number.
      • removeStatement

        void removeStatement​(JtdsStatement statement)
                      throws java.sql.SQLException
        Removes a statement object from the list maintained by the connection and cleans up the statement cache if necessary.

        Synchronized because it accesses the statement list, the statement cache and the baseTds.

        Parameters:
        statement - the statement to remove
        Throws:
        java.sql.SQLException
      • addStatement

        void addStatement​(JtdsStatement statement)
        Adds a statement object to the list maintained by the connection.

        WeakReferences are used so that statements can still be closed and garbage collected even if not explicitly closed by the connection.

        Parameters:
        statement - statement to add
      • checkOpen

        void checkOpen()
                throws java.sql.SQLException
        Checks that the connection is still open.
        Throws:
        java.sql.SQLException - if the connection is closed
      • checkLocal

        void checkLocal​(java.lang.String method)
                 throws java.sql.SQLException
        Checks that this connection is in local transaction mode.
        Parameters:
        method - the method name being tested
        Throws:
        java.sql.SQLException - if in XA distributed transaction mode
      • notImplemented

        static void notImplemented​(java.lang.String method)
                            throws java.sql.SQLException
        Reports that user tried to call a method which has not been implemented.
        Parameters:
        method - the method name to report in the error message
        Throws:
        java.sql.SQLException - always, with the not implemented message
      • getDatabaseMajorVersion

        public int getDatabaseMajorVersion()
        Retrieves the DBMS major version.
        Returns:
        the version as an int
      • getDatabaseMinorVersion

        public int getDatabaseMinorVersion()
        Retrieves the DBMS minor version.
        Returns:
        the version as an int
      • getDatabaseProductName

        java.lang.String getDatabaseProductName()
        Retrieves the DBMS product name.
        Returns:
        the name as a String
      • getDatabaseProductVersion

        java.lang.String getDatabaseProductVersion()
        Retrieves the DBMS product version.
        Returns:
        the version as a String
      • getURL

        java.lang.String getURL()
        Retrieves the original connection URL.
        Returns:
        the connection url as a String
      • getRmHost

        public java.lang.String getRmHost()
        Retrieves the host and port for this connection.

        Used to identify same resource manager in XA transactions.

        Returns:
        the hostname and port as a String
      • setClosed

        void setClosed()
        Forces the closed status on the statement if an I/O error has occurred.
      • sendXaPacket

        byte[][] sendXaPacket​(int[] args,
                              byte[] data)
                       throws java.sql.SQLException
        Invokes the xp_jtdsxa extended stored procedure on the server.

        Synchronized because it accesses the baseTds.

        Parameters:
        args - the arguments eg cmd, rmid, flags etc.
        data - option byte data eg open string xid etc.
        Returns:
        optional byte data eg OLE cookie
        Throws:
        java.sql.SQLException - if an error condition occurs
      • enlistConnection

        void enlistConnection​(byte[] oleTranID)
                       throws java.sql.SQLException
        Enlists the current connection in a distributed transaction.
        Parameters:
        oleTranID - the OLE transaction cookie or null to delist
        Throws:
        java.sql.SQLException - if an error condition occurs
      • setXid

        void setXid​(java.lang.Object xid)
        Sets the XA transaction ID when running in emulation mode.
        Parameters:
        xid - the XA Transaction ID
      • getXid

        java.lang.Object getXid()
        Gets the XA transaction ID when running in emulation mode.
        Returns:
        the transaction ID as an Object
      • setXaState

        void setXaState​(int value)
        Sets the XA state variable.
        Parameters:
        value - the XA state value
      • getXaState

        int getXaState()
        Retrieves the XA state variable.
        Returns:
        the xa state variable as an int
      • isXaEmulation

        boolean isXaEmulation()
        Retrieves the XA Emulation flag.
        Returns:
        True if in XA emulation mode.
      • getMutex

        Semaphore getMutex()
        Retrieves the connection mutex and acquires an exclusive lock on the network connection.
        Returns:
        the mutex object as a Semaphore
      • releaseTds

        void releaseTds​(TdsCore tds)
                 throws java.sql.SQLException
        Releases (either closes or caches) a TdsCore.
        Parameters:
        tds - the TdsCore instance to release
        Throws:
        java.sql.SQLException - if an error occurs while closing or cleaning up
        To do:
        Should probably synchronize on another object
      • getCachedTds

        TdsCore getCachedTds()
        Retrieves the cached TdsCore or null if nothing is cached and resets the cache (sets it to null).
        Returns:
        the value of cachedTds
        To do:
        Should probably synchronize on another object
      • getHoldability

        public int getHoldability()
                           throws java.sql.SQLException
        Specified by:
        getHoldability in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getTransactionIsolation

        public int getTransactionIsolation()
                                    throws java.sql.SQLException
        Specified by:
        getTransactionIsolation in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • clearWarnings

        public void clearWarnings()
                           throws java.sql.SQLException
        Specified by:
        clearWarnings in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • close

        public void close()
                   throws java.sql.SQLException
        Releases this Connection object's database and JDBC resources immediately instead of waiting for them to be automatically released.

        Calling the method close on a Connection object that is already closed is a no-op.

        Note: A Connection object is automatically closed when it is garbage collected. Certain fatal errors also close a Connection object.

        Synchronized because it accesses the statement list and the baseTds.

        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.sql.Connection
        Throws:
        java.sql.SQLException - if a database access error occurs
      • commit

        public void commit()
                    throws java.sql.SQLException
        Specified by:
        commit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • rollback

        public void rollback()
                      throws java.sql.SQLException
        Specified by:
        rollback in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getAutoCommit

        public boolean getAutoCommit()
                              throws java.sql.SQLException
        Specified by:
        getAutoCommit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isClosed

        public boolean isClosed()
                         throws java.sql.SQLException
        Specified by:
        isClosed in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isReadOnly

        public boolean isReadOnly()
                           throws java.sql.SQLException
        Specified by:
        isReadOnly in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setHoldability

        public void setHoldability​(int holdability)
                            throws java.sql.SQLException
        Specified by:
        setHoldability in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setTransactionIsolation

        public void setTransactionIsolation​(int level)
                                     throws java.sql.SQLException
        Specified by:
        setTransactionIsolation in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setAutoCommit

        public void setAutoCommit​(boolean autoCommit)
                           throws java.sql.SQLException
        Specified by:
        setAutoCommit in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setReadOnly

        public void setReadOnly​(boolean readOnly)
                         throws java.sql.SQLException
        Specified by:
        setReadOnly in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getCatalog

        public java.lang.String getCatalog()
                                    throws java.sql.SQLException
        Specified by:
        getCatalog in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setCatalog

        public void setCatalog​(java.lang.String catalog)
                        throws java.sql.SQLException
        Specified by:
        setCatalog in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getMetaData

        public java.sql.DatabaseMetaData getMetaData()
                                              throws java.sql.SQLException
        Specified by:
        getMetaData in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getWarnings

        public java.sql.SQLWarning getWarnings()
                                        throws java.sql.SQLException
        Specified by:
        getWarnings in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setSavepoint

        public java.sql.Savepoint setSavepoint()
                                        throws java.sql.SQLException
        Specified by:
        setSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • releaseSavepoint

        public void releaseSavepoint​(java.sql.Savepoint savepoint)
                              throws java.sql.SQLException
        Specified by:
        releaseSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • rollback

        public void rollback​(java.sql.Savepoint savepoint)
                      throws java.sql.SQLException
        Specified by:
        rollback in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStatement

        public java.sql.Statement createStatement()
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStatement

        public java.sql.Statement createStatement​(int type,
                                                  int concurrency)
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStatement

        public java.sql.Statement createStatement​(int type,
                                                  int concurrency,
                                                  int holdability)
                                           throws java.sql.SQLException
        Specified by:
        createStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getTypeMap

        public java.util.Map getTypeMap()
                                 throws java.sql.SQLException
        Specified by:
        getTypeMap in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setTypeMap

        public void setTypeMap​(java.util.Map map)
                        throws java.sql.SQLException
        Specified by:
        setTypeMap in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • nativeSQL

        public java.lang.String nativeSQL​(java.lang.String sql)
                                   throws java.sql.SQLException
        Specified by:
        nativeSQL in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql,
                                                      int type,
                                                      int concurrency)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareCall

        public java.sql.CallableStatement prepareCall​(java.lang.String sql,
                                                      int type,
                                                      int concurrency,
                                                      int holdability)
                                               throws java.sql.SQLException
        Specified by:
        prepareCall in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int autoGeneratedKeys)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int type,
                                                           int concurrency)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int type,
                                                           int concurrency,
                                                           int holdability)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           int[] columnIndexes)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setSavepoint

        public java.sql.Savepoint setSavepoint​(java.lang.String name)
                                        throws java.sql.SQLException
        Specified by:
        setSavepoint in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • prepareStatement

        public java.sql.PreparedStatement prepareStatement​(java.lang.String sql,
                                                           java.lang.String[] columnNames)
                                                    throws java.sql.SQLException
        Specified by:
        prepareStatement in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • clearSavepoints

        void clearSavepoints()
        Releases all savepoints. Used internally when committing or rolling back a transaction.
      • createArrayOf

        public java.sql.Array createArrayOf​(java.lang.String typeName,
                                            java.lang.Object[] elements)
                                     throws java.sql.SQLException
        Specified by:
        createArrayOf in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createBlob

        public java.sql.Blob createBlob()
                                 throws java.sql.SQLException
        Specified by:
        createBlob in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createClob

        public java.sql.Clob createClob()
                                 throws java.sql.SQLException
        Specified by:
        createClob in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createNClob

        public java.sql.NClob createNClob()
                                   throws java.sql.SQLException
        Specified by:
        createNClob in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createSQLXML

        public java.sql.SQLXML createSQLXML()
                                     throws java.sql.SQLException
        Specified by:
        createSQLXML in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • createStruct

        public java.sql.Struct createStruct​(java.lang.String typeName,
                                            java.lang.Object[] attributes)
                                     throws java.sql.SQLException
        Specified by:
        createStruct in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getClientInfo

        public java.util.Properties getClientInfo()
                                           throws java.sql.SQLException
        Specified by:
        getClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getClientInfo

        public java.lang.String getClientInfo​(java.lang.String name)
                                       throws java.sql.SQLException
        Specified by:
        getClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • isValid

        public boolean isValid​(int timeout)
                        throws java.sql.SQLException
        Specified by:
        isValid in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setClientInfo

        public void setClientInfo​(java.util.Properties properties)
                           throws java.sql.SQLClientInfoException
        Specified by:
        setClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLClientInfoException
      • setClientInfo

        public void setClientInfo​(java.lang.String name,
                                  java.lang.String value)
                           throws java.sql.SQLClientInfoException
        Specified by:
        setClientInfo in interface java.sql.Connection
        Throws:
        java.sql.SQLClientInfoException
      • isWrapperFor

        public boolean isWrapperFor​(java.lang.Class arg0)
                             throws java.sql.SQLException
        Specified by:
        isWrapperFor in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • unwrap

        public java.lang.Object unwrap​(java.lang.Class arg0)
                                throws java.sql.SQLException
        Specified by:
        unwrap in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • setSchema

        public void setSchema​(java.lang.String schema)
                       throws java.sql.SQLException
        Specified by:
        setSchema in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getSchema

        public java.lang.String getSchema()
                                   throws java.sql.SQLException
        Specified by:
        getSchema in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • abort

        public void abort​(java.util.concurrent.Executor executor)
                   throws java.sql.SQLException
        Specified by:
        abort in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • setNetworkTimeout

        public void setNetworkTimeout​(java.util.concurrent.Executor executor,
                                      int milliseconds)
                               throws java.sql.SQLException
        Specified by:
        setNetworkTimeout in interface java.sql.Connection
        Throws:
        java.sql.SQLException
      • getNetworkTimeout

        public int getNetworkTimeout()
                              throws java.sql.SQLException
        Specified by:
        getNetworkTimeout in interface java.sql.Connection
        Throws:
        java.sql.SQLException