JDBC 4.2 compliance for the JDBC driver

DownloadDownload JDBC Driver

Note

Versions prior to Microsoft JDBC Driver 4.2 for SQL Server are compliant for Java Database Connectivity API 4.0 specifications. This section does not apply for versions prior to the 4.2 release.

The Java Database Connectivity API 4.2 specification is supported by the Microsoft JDBC Driver 4.2 for SQL Server, with the following API methods.

SQLServerStatement class

New Methods Description Noteworthy Implementation
long[] executeLargeBatch() Executes batch where returned update counts can be long. Implemented as described in the java.sql.Statement interface. For more details see java.sql.Statement.
long executeLargeUpdate(String sql)

long executeLargeUpdate(String sql, int autoGeneratedKeys)

long executeLargeUpdate(String sql, int[] columnIndexes)

executeLargeUpdate(String sql, String[] columnNames)
Executes a DML/DDL statement where returned update counts can be long. There are 4 new (overloaded) methods to support long update count. Implemented as described in the java.sql.Statement interface. For more details see java.sql.Statement.
long getLargeMaxRows() Retrieves the maximum number of rows as a long value that the ResultSet can contain. SQL Server only supports integer limits for max rows. For more details see java.sql.Statement.
long getLargeUpdateCount() Retrieves the current result as a long update count. SQL Server only supports integer limits for max rows. For more details see java.sql.Statement.
void setLargeMaxRows(long max) Sets the maximum number of rows as a long value that the ResultSet can contain. SQL Server only supports integer limits for max rows. This method throws a not supported exception if greater than max integer size is passed as the parameter. For more details see java.sql.Statement.

SQLServerCallableStatement class

New Methods Description Noteworthy Implementation
void registerOutParameter(int parameterIndex, SQLType sqlType)

void registerOutParameter(int parameterIndex, SQLType sqlType, int scale)

void registerOutParameter(int parameterIndex, SQLType sqlType, String typeName)

void registerOutParameter(String parameterName, SQLType sqlType)

void registerOutParameter(String parameterName, SQLType sqlType, int scale)

registerOutParameter(String parameterName, SQLType sqlType, String typeName)
Registers the OUT parameter. There are 6 new (overloaded) methods to support the new SQLType interface. Implemented as described in the java.sql.CallableStatement interface. For more details see java.sql.CallableStatement.
void setObject(String parameterName, Object x, SQLType targetSqlType)

void setObject(String parameterName, Object x, SQLType targetSqlType, int scaleOrLength)
Sets the value of the parameter with the given object. There are 2 new (overloaded) methods to support the new SQLType interface Implemented as described in the java.sql.CallableStatement interface. For more details see java.sql.CallableStatement.

SQLServerPreparedStatement class

New Methods Description Noteworthy Implementation
long executeLargeUpdate() Execute DML/DDL statement and return long update count Implemented as described in the java.sql.PreparedStatement interface. For more details see java.sql.PreparedStatement.
void setObject(int parameterIndex, Object x, SQLType targetSqlType)

void setObject(int parameterIndex, Object x, SQLType targetSqlType, int scaleOrLength)
Sets the value of the parameter with the given object. There are 2 new (overloaded) methods to support the new SQLType interface. Implemented as described in the java.sql.PreparedStatement interface. For more details see java.sql.PreparedStatement.

SQLServerDatabaseMetaData class

New Methods Description Noteworthy Implementation
long getMaxLogicalLobSize() Retrieves the maximum number of bytes this database allows for the logical size for a LOB. For SQL Server this value is 2^31-1. For more details see java.sql.DatabaseMetaData.
boolean supportsRefCursors() Retrieves whether this database supports REF CURSOR. Returns false as SQL Server does not support REF CURSOR. For more details see java.sql.DatabaseMetaData.

SQLServerResultSet class

New Methods Description Noteworthy Implementation
Updates the designated column with an Object value. There are 4 new (overloaded) methods to support the new SQLType interface. Implemented as described in the java.sql.ResultSet interface. For more details see java.sql.ResultSet.

The Java Database Connectivity API 4.2 specification is supported by the Microsoft JDBC Driver 4.2 for SQL Server, with the following Data Type Mappings.

New Data Type Mappings Description
New Java classes in Java 8:

LocalDate/LocalTime/LocalDateTime

OffsetTime/OffsetDateTime

New JDBC types:

TIME_WITH_TIMEZONE

TIMESTAMP_WITH_TIMEZONE

REF_CURSOR
REF_CURSOR is not supported in SQL Server. Driver throws a SQLFeatureNotSupportedException exception if this type is used. The driver supports all other new Java and JDBC type mappings as specified in the JDBC 4.2 specification.