We have released a new early technical preview of the JDBC Driver for SQL Server which contains several additions and changes.
Precompiled binaries are available on GitHub and also on Maven Central.
Below is a summary of the changes in 13.1.0 over version 12.10.
Added
- Vector datatype support #2634
- What was added: Native support for SQL Server’s new VECTOR data type with APIs for inserts, selects, stored procedures, and bulk copy.
- Who benefits: Developers building AI/ML workloads or semantic search applications using vector data in SQL Server.
- Impact: Enables native vector storage and access via JDBC, eliminating the performance overhead of managing vector data as strings.
- New connection options, quotedIdentifier and concatNullYieldsNull #2618
- What was added: New connection options, quotedIdentifier and concatNullYieldsNull, to control QUOTED_IDENTIFIER and CONCAT_NULL_YIELDS_NULL session settings for both new and pooled connections.
- Who benefits: Developers needing Sybase-default behavior for their applications.
- Impact: Reduces Sybase migration effort by allowing control of these session values.
- Support for temporal and money datatypes when using bulk copy for batch insert operations #2670
- What was added: Support for batch inserts of DATETIME, DATE, MONEY, etc., when using the useBulkCopyForBatchInsert option.
- Who benefits: High-volume data insert users.
- Impact: Improves performance for previously unsupported types (except in Azure Synapse Analytics (formerly Azure SQL DW).
- Mockito integration into JDBC driver tests #2644
- What was added: Mockito added as a test dependency.
- Who benefits: Developers and contributors writing unit tests.
- Impact: Enables better control and test coverage.
Changed
- releaseSavepoint exception type standardized to SQLFeatureNotSupported #2583
- What changed: SQLServerException replaced with SQLFeatureNotSupportedException to comply with JDBC specification.
- Who benefits: Developers expecting JDBC standard exceptions.
- Impact: Enables better exception handling in client code.
- ActiveDirectoryPassword authentication deprecated #2624
- What changed: Added deprecation warning for Microsoft Entra ID password authentication method.
- Who benefits: Microsoft Entra ID authentication users.
- Impact: Encourages migration to more secure methods.
- Include Columnstore indexes in getIndexInfo() #2598
- What changed: Replaced sp_statistics with a custom query to support all index types.
- Who benefits: Developers using metadata APIs.
- Impact: More accurate index metadata.
- Corrected schema filtering in getSchemas() #2643
- What changed: Ensured schemas are properly filtered when a catalog name is provided.
- Who benefits: Users of metadata functions.
- Impact: Complies with JDBC specification and avoids confusion.
- Increased redirection limit #2659
- What changed: Raised maximum redirection hops from 1 to 10.
- Who benefits: Azure SQL Fabric users.
- Impact: Enables successful multi-hop connection scenarios.
Fixed issues
- Session recovery with Entra ID authentication and redirect mode #2668
- What was fixed: Redirect information is now followed during session recovery when using Entra ID authentication.
- Who benefits: Azure SQL DB users using Entra ID and connection resiliency.
- Impact: Prevents connection recovery failures.
- Javadoc build warnings #2640
- What was fixed: Cleaned up invalid Javadoc syntax.
- Who benefits: Developers building the driver.
- Impact: Cleaner builds, better docs.
- OffsetDateTime formatting in SQLServerDataTable #2652
- What was fixed: The OffsetDateTime toString() method was omitting seconds when seconds are zero, which resulted in the server rejecting those records. Used DateTimeFormatter to avoid this invalid format.
- Who benefits: Users inserting OffsetDateTime values.
- Impact: Prevents conversion errors.
- String comparison in SQLServerDataTable.equals() #2653
- What was fixed: Replaced == with .equals() for strings.
- Who benefits: Anyone comparing data tables.
- Impact: Accurate comparison behavior.
- PreparedStatement metadata caching for encrypted columns #2663
- What was fixed: Fixed loss of type metadata across PreparedStatement reuse.
- Who benefits: Users of Always Encrypted with secure enclaves.
- Impact: Prevents insert failures in batch encryption.
- Make IBM security module optional #2636
- What was fixed: IBM security dependency is now optional.
- Who benefits: Applications not using IBM modules.
- Impact: Avoids classloading issues.
- Invalidate enclave session on reconnect #2638
- What was fixed: Enclave session cache no longer reused across reconnects.
- Who benefits: Users of Always Encrypted with secure enclaves in failover configurations.
- Impact: Prevents internal enclave errors due to invalid enclave session references after failover.
- File path error handling in ConfigurableRetryLogic #2650
- What was fixed: Robust error handling for missing/unreadable retry config files.
- Who benefits: All users.
- Impact: Prevents driver errors due to application file path issues.
- Suppressed CodeQL warnings for crypto usages #2677
- What was fixed: Suppressed CodeQL security warnings for cryptographic use cases.
- Who benefits: Reviewers using CodeQL.
- Impact: Maintains compatibility and audit clarity.
- Batch insert fix for case-sensitive column name mismatch #2695
- What was fixed: executeBatch() now respects case sensitivity of collations when matching column names.
- Who benefits: Applications using case-sensitive/case-insensitive schemas.
- Impact: Avoids metadata retrieval failures during batch inserts.
Getting the latest release
The latest bits are available on our GitHub repository, and Maven Central.
Add the JDBC preview 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 for Java 8 or .jre11 for Java 11 and up).
<dependency>
<groupid>com.microsoft.sqlserver</groupid>
<artifactid>mssql-jdbc</artifactid>
<version>13.1.0.jre11</version>
</dependency>
Help us improve the JDBC Driver by 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
Updated Jul 01, 2025
Version 1.0DavidEngelMS
Microsoft
Joined January 22, 2020
SQL Server Blog
Follow this blog board to get notified when there's new activity