This section describes the general functionality supported by the driver.

  • Unicode support: Multilingual JDBC applications can be developed on any operating system using the driver to access both Unicode and non-Unicode enabled databases. Internally, Java applications use UTF-16 Unicode encoding for string data. When fetching data, the driver automatically performs the conversion from the character encoding used by the database to UTF-16. Similarly, when inserting or updating data in the database, the driver automatically converts UTF-16 encoding to the character encoding used by the database.

    The JDBC API provides mechanisms for retrieving and storing character data encoded as Unicode (UTF-16) or ASCII. Additionally, the Java String object contains methods for converting UTF-16 encoding of string data to or from many popular character encodings.

  • Error handling: The driver reports errors to the application by throwing SQLExceptions. Each SQLException contains the following information:
    • Description of the probable cause of the error, prefixed by the component that generated the error
    • Native error code (if applicable)
    • String containing the XOPEN SQLstate
  • Isolation and lock levels: The SQL Server driver supports the following isolation levels for Microsoft SQL Server.
    Note: For Microsoft Azure Synapse Analytics and Microsoft Analytics Platform System, Read Uncommitted is the only supported isolation level.
    • Read Committed with Locks or Read Committed
    • Read Committed with Snapshots
    • Read Uncommitted
    • Repeatable Read
    • Serializable
    • Snapshot

    For Microsoft SQL Server, the default is Read Committed with Locks or Read Committed.

  • Timeouts: The driver allows you to impose limits on the duration of active sessions through the use of the EnableCancelTimeout and QueryTimeout connection properties. With the LoginTimeout connection property, you can specify how long the driver waits for a connection to be established before timing out the connection request.