This article is contributed. See the original author and article here.

Version 8.4 of the Microsoft JDBC Driver for SQL Server has been released. Version 8.4.0 brings many added features, changes, and fixed issues over the previous production release.

 

Added

  • Added support for sensitivity ranking when using SQL Data Discovery and Classification #1338 #1373
  • Added SQLServerDatabaseMetaData.getDatabaseCompatibilityLevel() API to return the database compatibility level #1345
  • Added support for Azure SQL DNS Caching #1357
  • Added delayed durability option to SQLServerConnection.commit() #1310
  • Introduced SQLServerBulkCSVFileRecord.setEscapeColumnDelimitersCSV() to escape delimiters and double quotes when using bulk copy to load from CSV files #1312
  • Added certificate expiry validation when using Always Encrypted with secure enclaves #1321
  • Added SQL State to Exception when a connection is closed #1326
  • Introduced extended bulk copy support against Azure Data Warehouse #1331
  • Introduced ‘delayLoadingLobs’ connection property to provide backward compatibility when streaming LOBs #1336
  • Added connection properties to specify a custom SocketFactory #1217
  • Added support for Client Certificate Authentication #1284
  • Added support for JAVA 14 #1290
  • Added support for authentication to Azure Key Vault using Managed Identity #1286
  • Added an option to configure the list of trusted Azure Key Vault endpoints #1285

Changed

  • Added database name to Always Encrypted enclave caching key #1388
  • Added functionality to validate both certificate beginning and expiration dates when creating an encrypted connection #1394
  • Improved exception message when connecting to a redirection-enabled Azure server #1311
  • Improved performance when parsing a connection string #1317
  • Updated the driver to throw a warning when TLS version lower than 1.2 is negotiated #1322
  • Updated SQLServerPreparedStatement.setObject() to retrieve TVP name from SQLServerDataTable #1282

Fixed

  • Fixed an issue with DatabaseMetaData.getColumns() intermittently returning table column descriptions in an incorrect order #1348
  • Fixed an issue with spatial datatypes casting error when Always Encrypted is enabled #1353
  • Fixed an issue with DatabaseMetaData.getColumns() not returning the correct type for IS_AUTOINCREMENT and IS_GENERATEDCOLUMN against Azure Data Warehouse #1356
  • Fixed an issue with Geography.STAsBinary() and Geometry.STAsBinary() returning WKB format instead of CLR format #1364
  • Fixed an issue with allowing non-MSSQL ResultSets to bulk copy DateTimeOffset #1365
  • Fixed an issue with batch insertion failing when Always Encrypted is enabled #1378
  • Fixed an issue with Managed Identity authentication failing due to expiry date format mismatch #1308
  • Fixed an issue with streams not getting closed when using Always Encrypted with secure enclaves #1315
  • Fixed an issue with retrieving SQL VARIANT as its underlying type #1320
  • Fixed issues with the driver not being JAVA 8 compliant #1328
  • Fixed an issue with PreparedStatement when inserting large spatial data types #1337
  • Fixed an issue with escaping curly brackets in connection strings #1251
  • Fixed a warning when retrieving Operating System information from SQL Server Linux when using distributed transactions #1279
  • Fixed a potential NullPointerException issue when retrieving data as java.time.LocalTime or java.time.LocalDate type with SQLServerResultSet.getObject() #1250

 

Getting the latest release

The latest bits are available to download from Microsoft, from the GitHub repository, and via Maven Central.

Add the JDBC 8.4 RTW driver to your Maven project by adding the following code to your POM file to include it as a dependency in your project (choose .jre8, .jre11, or .jre14 for your required Java version).

 

 

<dependency> 
  <groupId>com.microsoft.sqlserver</groupId> 
  <artifactId>mssql-jdbc</artifactId> 
  <version>8.4.0.jre11</version> 
</dependency> 

 

 

Help us improve the JDBC Driver by taking our survey, filing issues on GitHub or contributing to the project.

Please also check out our tutorials to get started with developing apps in your programming language of choice and SQL Server.

David Engel

Brought to you by Dr. Ware, Microsoft Office 365 Silver Partner, Charleston SC.