|
|
旅行中的红茶 · PHP表单生成器 - FormBuilder· 12 月前 · |
|
|
不爱学习的手套 · 机器学习因果推断之机器学习——0.1课前准备 ...· 1 年前 · |
|
|
微笑的红烧肉 · 【保密宣传】安全保密常识· 2 年前 · |
|
|
满身肌肉的扁豆 · 女职工退休身份如何认定?工人还是干部?技术管 ...· 2 年前 · |
|
|
踏实的佛珠 · 国务院办公厅关于印发“十二五”全国城镇污水处 ...· 2 年前 · |
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:13.4.0
发布日期:2026 年 3 月 13 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
prepareMethod
=
scopeTempTablesToConnection
新增 prepareMethod 选项,该选项通过使用字面量参数替换而非服务器端的预编译句柄,将预编译语句中创建的临时表的作用域限定在当前连接内。
添加
prepareMethod
=none 执行路径
新的
prepareMethod
=none 选项,该选项强制使用 SQL 批处理执行进行文本参数替换,绕过服务器端准备的语句句柄(sp_prepexec/sp_prepare)。
性能记录器和回调
引入了性能日志记录框架来跟踪关键驱动程序操作,例如连接时间、预日志、登录和令牌获取。
语句级性能日志记录指标
扩展了性能日志记录功能,以捕获
Statement
和
PreparedStatement
的详细执行指标(REQUEST_BUILD、FIRST_SERVER_RESPONSE、PREPARE、PREPEXEC、EXECUTE)。
删除 ADAL 依赖项 – 将 Entra ID (Active Directory) 集成身份验证迁移到
mssql-auth.dll
API
已将已弃用
adal.dll
的流替换为
mssql-auth.dll
。
通过 TDS 功能扩展发送用户代理信息
使用新的 LOGIN7 TDS 功能扩展(USERAGENT)将用户代理信息发送到服务器。
Java 25 支持
驱动程序正式支持 Java 开发工具包 (JDK) 版本 25.0。
DatabaseMetaData.getColumns()
以使用
sp_columns_170
并支持回退
getColumns() 现在优先使用 sp_columns_170(SQL Server 2025)来获取关于较新类型(如 VECTOR 和增强型 JSON)的准确元数据,并在需要时自动回退到 sp_columns_100。
版本更新用于解决传递性依赖项的 CVE问题
升级到
azure-identity
1.18.2 和
msal4j
1.23.1,这反过来又更新了包括 Netty (
4.1.130.Final
)、反应堆 Netty (1.2.13) 和 Nimbus JOSE JWT (10.0.1) 在内的可传递依赖项。
更新 Manifest 中的 bundle-version 以包含 JRE 后缀
清单中的 Bundle-Version 现在包含 jre8/jre11 后缀,以匹配 JAR 文件名。
dbo
sys
等)的目录解析逻辑
GitHub 问题 #2872
。
修复 Statement.execute() 在批处理错误后跳过更新计数的问题
防止在混合批处理执行中出错后丢失有效的更新计数。
GitHub 问题 #2866
。
在证书 SAN 中支持 IP 地址验证
在 TLS/SSL 证书 SAN 检查中添加了符合 RFC 5280 的 IP 地址验证。
GitHub 问题 #2873
。
批量插入中对制表符分隔数据中孤立引号的解析
解决了在制表符分隔批量复制操作期间因引号状态处理错误导致的 IndexOutOfBoundsException。
GitHub 问题 #2795
。
PreparedStatement INSERT 更新计数(涉及触发器和多值插入)
修正了 PreparedStatement 对带有触发器的多值 INSERT 语句返回的更新计数不准确的问题。
GitHub 问题 #2817
。
修复 DONE 标记中的致命错误处理
纠正了 TDS 消息处理机制,以正确检测和传递具有决定性严重性(25及以上)的错误。
GitHub 问题 #2741
。
修复了具有表值参数的 getParameterMetaData() 崩溃问题
防止在使用表值参数 (TVP) 的语句上调用 getParameterMetaData() 时引发 SQLServerException。
GitHub 问题 #2746
。
supportsIntegrityEnhancementFacility() 返回准确值
更正了 DatabaseMetaData.supportsIntegrityEnhancementFacility(),以便为 SQL Server 返回 true。
GitHub 问题 #2828
。
修复批量插入的批量复制功能,以支持 InputStream 数据
使 setBinaryStream() 能与批量插入到 VARBINARY(MAX) 列的批量复制功能正确配合工作。
GitHub 问题 #2826
。
解决了因不支持 sp_statistics 存储过程而在 Azure Synapse 无服务器 SQL 池中导致的失败问题
在 getIndexInfoAzureDW() 中添加了 try–catch 备用方案,当 sp_statistics 不可用时,可查询 sys.indexes、sys.index_columns、sys.columns 和 sys.tables。
GitHub 问题 #2839
。
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:13.2.1
发布日期:2025 年 10 月 13 日
修复了 13.2.1 中的问题:
PreparedStatement
getGeneratedKeys()
的触发器故障问题
DatabaseMetaData.getIndexInfo()
NON_UNIQUE
值不一致的问题
DatabaseMetaData.getIndexInfo()
无效的游标位置异常
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:13.2.0
发布日期:2025 年 8 月 15 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
美国英语
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
SQLServerBulkCopy
时指定顺序提示,以提高大容量复制的性能。
为 FR 和 DE 添加新的受信任 AKV URL
为法国和德国注册了四个新的 Azure 密钥保管库 和 Managed HSM 终结点。
矢量数据类型支持
重大变更
原生支持 SQL Server 的新 VECTOR 数据类型,并提供用于插入、查询、存储过程和批量复制的 API。 有关详细信息,请参阅
将矢量数据类型与 JDBC 驱动程序配合使用
。
vectorTypeSupport
设置为
off
。 有关详细信息,请参阅
设置连接属性
。
新的连接选项,
quotedIdentifier
, 和
concatNullYieldsNull
新的连接选项
quotedIdentifier
和
concatNullYieldsNull
,用于控制新建连接和池化连接的 QUOTED_IDENTIFIER 及 CONCAT_NULL_YIELDS_NULL 会话设置。
在使用批量复制进行批量插入操作时,支持时间型和货币型数据类型
在使用
useBulkCopyForBatchInsert
选项时,支持对 DATETIME、DATE、MONEY 等的数据进行批量插入。
sendTemporalDataTypesAsStringForBulkCopy
为
false
时,正确处理时间类型的空值。
GitHub 问题 #2702
。
修复当
sendStringParametersAsUnicode
为
false
时使用批量复制 API 插入字符串的问题
解决了当
sendStringParametersAsUnicode
设置为
false
时,在批量复制模式下字符串被作为字节数组插入的问题。
GitHub 问题 #2704
。
通过 Microsoft Entra ID 身份验证和重定向模式进行会话恢复
使用 Microsoft Entra ID 身份验证时,会话恢复过程中现在会遵循重定向信息。
GitHub 问题 #2668
。
Javadoc 生成警告
清理了无效的 Javadoc 语法。
GitHub 问题 #2640
。
OffsetDateTime
在
SQLServerDataTable
中的格式化
当秒为零时,该方法
OffsetDateTime
toString()
省略秒数,这会导致服务器拒绝这些记录。 用于
DateTimeFormatter
避免此无效格式。
GitHub 问题 #2652
。
在
SQLServerDataTable.equals()
中的字符串比较
将字符串中的
==
替换为
.equals()
。
GitHub 问题 #2653
。
PreparedStatement
加密列的元数据缓存
修复了重复使用时
PreparedStatement
类型元数据丢失的问题。
GitHub 问题 #2663
。
使 IBM 安全模块可选
IBM 安全依赖项现在是可选的。
GitHub 问题 #2636
。
重新连接时使 enclave 会话失效
Enclave 会话缓存不再在重新连接时被重复使用,以避免故障转移后出现无效的会话缓存。
GitHub 问题 #2638
。
在
ConfigurableRetryLogic
中处理文件路径错误
针对缺失/不可读重试配置文件的可靠错误处理。
GitHub 问题 #2650
。
修复了批量插入中区分大小写的列名不匹配问题
executeBatch()
现在在匹配列名时会遵循排序规则的大小写敏感性。
GitHub 问题 #2695
。
releaseSavepoint
异常类型被标准化为 SQLFeatureNotSupported
SQLServerException 替换为 SQLFeatureNotSupportedException 以符合 JDBC 规范。
GitHub 问题 #2583
。
ActiveDirectoryPassword
身份验证已弃用
为 Microsoft Entra ID 密码身份验证方法添加了弃用警告。
GitHub 问题 #2624
。
在
getIndexInfo()
中包含列存储索引
替换
sp_statistics
为自定义查询以支持所有索引类型。
GitHub 问题 #2598
。
修正了
getSchemas()
中的架构过滤
变更内容:确保在提供目录名称时,架构能被正确过滤。
GitHub 问题 #2643
。
重定向限制已增加
将最大重定向次数从 1 提高到 10。
GitHub 问题 #2659
。
修复
trustStoreType
TLS/SSL 连接中的 JVM 属性协商。
添加了遵循标准 Java 属性解析层次结构的综合 JVM 系统属性协商逻辑。
GitHub 问题 #2724
。
使用批量复制和非 Unicode 字符串时正确插入带重音字符
更新
executeBatch()
为将正确的
databaseCollation
值向下传递到转换逻辑。 确保使用实际数据库排序规则将字节数组转换回字符串,从而防止编码不匹配。
GitHub 问题 #2727
。
在
getGenerateKeys()
方法的查询开始时处理 SQL 注释
将天真 INSERT 检查替换为
isInsert
函数,以确保即使查询以注释开头,也会提取生成的密钥。
GitHub 问题 #2731
。
下载 Microsoft JDBC Driver 12.10.2 for SQL Server (tar.gz)
版本号:12.10.2 发布时间: 2025 年 10 月 13 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.10.2
发布日期:2025 年 10 月 13 日
修复了 12.10.2 中的问题:
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.10.1
发布日期:2025 年 6 月 18 日
修复了 12.10.1 中的问题:
readFromFile()
中更新
ConfigurableRetryLogic
以处理
filePath
相关问题
noOfRedirections
doExecutePreparedStatement
中修复了“新类型参数定义”的逻辑。
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.10.0
发布日期:2025 年 3 月 7 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
SQLServerBulkCopy
中设置
PreparedStatement
选项的规定。
为了在使用
useBulkCopyForBatchInsert=true
时将
SQLServerBulkCopyOptions
设置为
PreparedStatement
,引入了新的连接字符串选项和一个
setBulkCopyOptions
API 方法。
添加了可配置的重试逻辑功能,支持语句和连接重试
为 SQL 语句添加了可配置的重试逻辑,允许在连接字符串或
mssql-jdbc.properties
文件中定义规则。 这些规则指定要重试的错误、重试次数和重试之间的计时。 重试逻辑可确保仅在满足指定条件(例如匹配错误代码和查询)时重试。
DTVImpl::getValue
之前,增加了对
DTVImpl
空值的检查。 此检查显示内部基准测试中的性能提升。 这一修复更改了
getBinaryStream
中
getAsciiStream
和
ResultSet
的行为,使其符合 JDBC API 规范。 返回:将数据库列值作为单字节 ASCII 字符流的 Java 输入流;如果值为 SQL NULL,则返回的值为 null。
添加了 com.ibm.security.auth.module 和 com.sun.security.auth.module 作为选项导入
为这些 OSGi 导入设置 resolution=optional,以防止强制导入导致的部署失败。
还原了“直接执行存储过程”功能,以及与该功能相关的后续更改
由于这些更改引入了问题和回归,已撤销该功能。
将 MSAL 日志级别从 FINEST 更改为 FINER
进行此更改是为了减少日志的详细程度,同时仍提供足够的详细信息来排查身份验证问题。
更新了依赖项
已更新
azure-identity
、
bouncycastle
和
juint
的依赖项版本。
NullPointerException
问题
修复了通过遍历映射中的键集在计算列上执行批量复制操作时出现的
NullPointerException
问题。
GitHub 问题 #2606
。
将登录模块的解析设置为可选
修复了 JAR 文件清单中包含对 com.ibm.security.auth.module 和 com.sun.security.auth.module 的非可选导入声明的问题,这些声明应使用 resolution:=optional 进行声明。
GitHub 问题 #2608
。
修复了
BULK_COPY_OPERATION_CACHE
的范围
修复了
BULK_COPY_OPERATION_CACHE
被错误地在全局范围而不是连接范围中定义的问题,该问题导致跨连接的缓存命中不正确,并且可能引发内存不足的问题。
GitHub 问题 #2585
。
修复了 isIBM 检查方法,以确保使用正确的登录模块。
修复了
generateDefaultConfiguration
方法,以动态检查是否存在
com.sun.security.auth.module.Krb5LoginModule
,若存在则使用,否则回退到
com.ibm.security.auth.module.Krb5LoginModule
。
GitHub 问题 #2576
。
修复了当
SQLServerBulkCopy
来自 CSV 且
setEscapeColumnDelimerts
设置为 true 时的问题
修复了12.8.1版本中的一个回归问题,即
readLineEscapeDelimiters
SQLServerBulkCSVFileRecord
的方法未正确处理CSV文件最后一行末尾缺少换行符的情况。
GitHub 问题 #2573
。
修复了格里高利历之前的日期
OffsetDateTime
转换问题
修复了
DateTimeOffset
到
OffsetDateTime
的转换,使其使用
Calendar
类来处理格里高利历之前的日期。
GitHub 问题 #2565
。
修复了
getGeneratedKeys
执行 API 的功能
修复了 execute API 的
getGeneratedKeys
功能,使其能正确报告更新计数和后续结果集。
GitHub 问题 #2550
。
修复了
SQLServerConnection
可能进入无限循环的情况
在
SQLServerConnection
中修复了无限循环,方法是确保所有
openStatements
语句被明确关闭和删除,并将
bIsClosed
和
openStatements
设置为 volatile。
GitHub 问题 #2537
。
修复了从列标签(别名)中移除问号的问题
修复了
buildExecuteMetaData
方法中的错误处理,以更好地管理
SQLServerException
,确保包含问号的列标签(别名)能被正确处理。
GitHub 问题 #2535
。
修复了 Kerberos 身份验证机制,以提供与 Java 17 及更高版本的兼容性
该修复解决了
Subject.getSubject()
方法被弃用的问题,当抛出弃用异常时,将回退到替代 API。
GitHub 问题 #2524
。
下载 Microsoft JDBC Driver 12.8.2 for SQL Server (tar.gz)
版本号:12.8.2 发布时间: 2025 年 10 月 13 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.8.2 发布时间: 2025 年 10 月 13 日
修复了 12.8.2 中的问题:
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.8.1 发布时间: 2024 年 8 月 22 日
12.8.1 中的更改:
修复了 12.8.1 中的问题:
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.8.0
发布日期:2024 年 7 月 31 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
中文(简体)
|
中文(繁体)
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
SQLServerBulkCopy
对象
替换以前的行为,其中每次调用
executeBatch()
会生成一个新的
SQLServerBulkCopy
对象,现在已改为缓存该对象。
为大容量复制中的目标列元数据新增了连接级别缓存
通过在连接级别为目标列的元数据添加缓存来改进大容量复制场景中的性能。 通过将新增的连接字符串属性
cacheBulkCopyMetadata
设置为
true
(默认值为
false
)来启用此功能。
新增了 SQL Server 消息处理程序并支持 SQLException 链式处理
新增了一种SQL Server消息处理程序,允许支持多个功能,包括为长时间运行的查询提供更多反馈、全局错误日志记录,以及将错误消息严重性从SQLException自动降级为SQLWarning。 此外,此功能允许将 SQLException 链接在一起,以便用户查看所有错误消息。 请参阅
“处理错误
”。
为 CSV 批量插入操作提供 RFC4180 完整支持
此前缺少对包含换行符的带引号字段的支持,以确保完全符合 RFC4180 标准;现已添加此项支持。
允许根据
microsoft.sql.DateTimeOffset
值构造
java.time.OffsetDateTime
实例
使用
Timestamp
中介对已存在于驱动程序中的两种数据类型进行转换。 此新增功能可消除中介,从而改进性能并减少出现与时区相关的错误的可能性。
RMFAIL
,修订了之前的 RMERR/RMFAIL 更改。
先前的更改将部分案例中的值从
XAER_RMFAIL
更改为
XAER_RMERR
,但很快这些案例就成了所涵盖案例中的大多数。 解决方法是将默认值更改为
RMFAIL
,如果发生与前述案例相反的情况,则更改为
RMERR
。
更新了依赖项
已更新
azure-identity
、
bouncycastle
和
msal
的依赖项版本。
修改了对
TDSType.GUID
的支持
允许将 UUID 直接传递到
TDSType.GUID
方法,以此增强原本新增的对
setObject
的支持。
向令牌缓存添加了日志记录
对令牌缓存应用场景新增了其他日志记录,以便在调试应用场景中提供帮助。
CallableStatements
某些格式返回了不正确的值。
GitHub 问题 #2477
。
修复了对存储过程和函数中括号的分析
修复了以下问题:在可调用语句的末尾调用带括号的函数(例如,
function()
与
function
)导致返回值始终为 0 的问题。 此更改是 12.6.2 --> 12.6.3 的回归。
GitHub 问题 #2463
。
修复了驱动程序在使用默认参数时未遵循
CallableStatement
的错误。
修复了 12.5.0 --> 12.6.0 回归的错误,其中可调用语句中的默认参数被忽略。
GitHub 问题 #2446
。
修复以移除驱动程序不需要的
TokenCredential
类
TokenCredentialClass
在
SQLServerSecurityUtility
中并非必需,且可能导致错误地抛出
NoClassDefFoundError
。 此项修复会删除导入操作,并将其替换为泛型
Object
。
GitHub 问题 #2439
。
修复了对于
CallableStatements
的时间戳字符串转换错误
修复了在设置
DateTime
值时,调用
String
输入/输出参数时发生的转换异常。
GitHub 问题 #2436
。
修复了构造函数
SqlAuthenticationToken
以接受正确的参数
SQLAuthenticationToken 的构造函数不正确,其接受以秒为单位的输入参数,但实际应接受以毫秒为单位的输入参数。
GitHub 问题 #2424
。
修复了在重新连接前清除预编译语句句柄的问题
此修复通过在重新连接前正确清除
SQLServerPreparedStatement.prepStmtHandle
,解决了重新连接后
SQLServerPreparedStatement
中使用错误句柄的问题。
GitHub 问题 #2364
。
执行修复,以在重置语句池连接时清除已准备的语句缓存
启用语句池化后,重用来自
ConnectionPool
的连接会导致条目丢失或错误插入,这个问题已被修复。
GitHub 问题 #2356
。
修复以解除
socketTimeout
与
loginTimeout
的绑定
socketTimeout
应在连接建立时具有上限限制
loginTimeout
,但在驱动程序连接后不应有上限限制。 此项更改修复了该行为。
GitHub 问题 #2354
。
修复以在尝试递增之前正确检查
TDSCommand
计数器是否为null
为
TDSCommand
计数器添加了缺失的
null
检查,从而防止了原本可能出现的
NullPointerException
错误。
GitHub 问题 #2353
。
修复了使用四部分语法调用带输出参数的存储过程的问题
修复了使用四部分语法(即通过链接服务器)调用存储过程时,导致出现“TDS 协议流无效”错误的问题。
GitHub 问题 #2344
。
修复了
schema
参数在
getProcedures
和
getProcedureColumns
中的转义问题
SQLServerDatabaseMetadata
方法
getProcedures
和
getProcedureColumns
未能正确转义
schema
参数中的某些字符(例如
\
)。 此项更改修复了该问题。
GitHub 问题 #2336
。
新增了令牌缓存映射,以修复认证令牌在后续连接中的意外使用问题。
这修复了可能会无意中重复使用客户端凭据的问题。 在身份验证令牌被正确缓存后,驱动程序只是重用了该令牌,仅更改了客户端密码。
GitHub 问题 #2334
。
修正了在
exec
中对
CallableStatements
转义语法的支持
修复了这样一个问题:在删除了用于包装
sp_executesql
/
sp_prepexec
的调用以快速执行
CallableStatements
之后,
EXEC
调用就不再有效。
GitHub 问题 #2325
。
执行修复,以确保
Money
和
SmallMoney
位于大容量复制的正确范围内
此修复解决了以下问题:当使用批量复制并包含
Money
或
SmallMoney
值时,值的转换可能导致
ArithmeticOverflowException
错误。
GitHub 问题 #2309
。
修复了确保
ResultSetMetadata
对于
DatabaseMetadata.getColumns()
在所有列中均正确的错误
某些列返回的元数据不正确,此项更改修复了该问题。
GitHub 问题 #2232
。
修复了当
connectRetryCount
设置为
0
时,正确关闭连接重试的功能
这个更新修复了一个问题:即使将
connectRetryCount
设置为 0,驱动程序仍然会尝试重试,直到达到
loginTimeout
。
GitHub 问题 #2232
。
GitHub 问题 #2188
。
执行修复,以解决
ClassLoader
ActivityCorrelator
的
ThreadLocal
泄漏问题
修复了此前驱动程序对
ActivityId
进行更改后,
ActivityCorrelator
中的
ThreadLocal
始终未从线程中移除的问题。
修复以直接执行用于 RPC 调用的存储过程
RPC 调用通过被封装在
sp_executesql
调用中而使用旧逻辑;此更改修正了该行为。
下载 Microsoft JDBC Driver 12.6.5 for SQL Server (tar.gz)
版本号:12.6.5 发布时间: 2025 年 10 月 13 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.6.5
发布日期:2025 年 10 月 13 日
修复了 12.6.5 中的问题:
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.6.4
发布日期:2024 年 8 月 29 日
修复了 12.6.4 中的问题:
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.6.3
发布日期:2024 年 6 月 20 日
修复了 12.6.3 中的问题:
TokenCredential
类的问题
SQLServerCallableStatement
默认值回退问题
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.6.2
发布日期:2024 年 5 月 23 日
12.6.2 中的新增功能:
修复了 12.6.2 中的问题:
CallableStatements
的调用是直接执行的
SocketTimeout
应在成功打开连接后不受
loginTimeout
限制
下载 Microsoft JDBC Driver 12.6.2 for SQL Server (tar.gz)
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.6.1
发布日期:2024 年 2 月 20 日
修复了 12.6.1 中的问题:
CallableStatements
的 ‘EXEC’ 转义语法
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.6.0
发布日期:2024 年 1 月 31 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
useFlexibleCallableStatements
直接调用存储过程
驱动程序现在直接调用存储过程,而不是像以前那样将存储过程封装在
exec sp_executesql
中,从而简化了存储过程并提高了性能。
添加了
useDefaultJaasConfig
连接字符串属性
如果设置为 true,则允许 Kerberos 身份验证,而无需其他外部配置。
添加了
useDefaultGSSCredential
连接字符串属性
如果设置为 true,则允许驱动程序在使用本机 GSS-API 进行 Kerberos 身份验证时代表用户创建 GSSCredential。
添加了
calcBigDecimalPrecision
连接字符串属性
如果设置为 true,则允许驱动程序计算输入的
BigDecimal
精度。
添加了用于连接打开重试和空闲连接复原能力重新连接的新命名记录器
连接打开重试使用“重定向”日志类别,可在 FINE 日志级别使用。 空闲连接弹性重连使用“弹性”日志类别,可在 FINE 或 FINER 日志级别使用。
socketTimeout
以确保确实小于
loginTimeout
此前
socketTimeout
与
loginTimeout
独立运行,导致驱动程序超时耗时比预期更长,可能引发混淆。 已修复此问题,让
socketTimeout
始终具有等于
loginTimeout
的上限。
调整了
PreparedStatement
缓存,以便在每次执行之前清除自身
PreparedStatement
缓存未能被正确清除,这种不频繁的情况可能会随着时间导致内存问题。 此更改可确保在每次执行前清理缓存,阻止对象增加。
升级到较新的 BouncyCastle 依赖项
从
bcprov-jdk15on
和
bcpkix-jdk15on
升级到
bcprov-jdk18on
和
bcpkix-jdk18on
,因为已不再更新前两者。
更新了依赖项
已更新
azure-identity
、
azure-security-keyvault-keys
、
bouncycastle
、
h2
和
msal
的依赖项版本。
useBulkCopyForBatchInsert
缺少 getter 和 setter 方法的问题
修复了
SQLServerConnection
与
SQLServerConnectionPoolProxy
之间行为不一致的问题(本应一致),原因是
useBulkCopyForBatchInsert
在后者中缺少 getter 和 setter 方法。
GitHub 问题 #2245
。
修复了批量复制元数据查询,以便在可用时利用缓存数据。
修复了一个问题,该问题导致即使数据已被缓存,每次调用时仍然重复请求列元数据。
GitHub 问题 #2224
。
修复了 TVP 值中缺失的
BigDecimal
量级检查
修复了一个问题,即在编写 TVP 行值时,输入值未经过正确的
BigDecimal
标尺过滤。
GitHub 问题 #2222
。
修复了 SQLServerDatabaseMetadata 中的
schemaPattern
,以确保使用该参数的方法能正确对其进行转义。
修复了 SQLServerDatabaseMetadata 中
schemaPattern
是唯一未被正确转义的模式的问题。
GitHub 问题 #2186
。
修复了尝试将日期转换为 long 类型时返回空 SQLState 的问题
修复当
xopenStates
设置为 true 时,驱动程序在特定实例中不返回预期 SQL-99 状态代码的问题。
GitHub 问题 #2167
。
修复了包含 TOP 的查询中的
getMetaData
错误
修复了以下问题:在查询中使用 TOP 限定符时,驱动程序将返回有关
ParameterMetadata
的错误。
GitHub 问题 #1776
。
修复了使用批量插入时的表单名称分析问题
修复了一个问题,即在一般情况下,缺少空格的插入语句可以正确工作,但在使用批量插入时却无法正常工作。
GitHub 问题 #1534
。
修复了与
ParameterMetadata
及索引无效相关的问题
修复了
ParameterMetadata
未能正确检查无效索引 0 并为此抛出异常的问题。
GitHub 问题 #1490
。
修正了
ActivityCorrelator
中 ActivityID 的行为
修复了 ActivityID 的定义和使用方式,使其更符合其他 Microsoft 驱动程序的行为。
修复了使用批量复制进行批量插入时忽略计算列的问题
修复了批量复制的行为,使其忽略计算列并允许批量插入;此前插入会失败并返回引用这些计算列的错误。
修复了使用 Java 密钥存储库和 Azure 密钥库时有关签名的驱动程序行为
修复了使用 Java 密钥存储库时驱动程序无法正确验证签名的问题,并添加了用于与 Java 密钥存储库和 Azure 密钥保管库 配合使用的 API,用于为列主密钥元数据生成签名并返回生成的签名。
修复
getObject()
错误地转换
DateTimeOffset
的问题
修复了在
ResultSet.getObject()
列上调用
DateTimeOffset
时出现的问题,其中使用
LocalDate
/
LocalTime
/
LocalDateTime
作为类参数,该列的值将被转换为本地时区。
发布日期:2025 年 10 月 13 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.4.3 发布时间: 2025 年 10 月 13 日
修复了 12.4.3 中的问题:
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.4.2 发布时间: 2023 年 9 月 21 日
12.4.2 中已修复的问题:
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.4.1
发布日期:2023 年 8 月 24 日
12.4.1 中的更改:
修复了 12.4.1 中的问题:
getUserName
的问题
signColumnMasterkeyMetadata
API 添加到 JKS 和 AKV 中。
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.4.0
发布日期:2023 年 7 月 31 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
ActiveDirectoryServicePrincipalCertificate
的支持
通过连接选项
authentication=ActiveDirectoryServicePrincipalCertificate
,支持 Azure 标识库中的
ActiveDirectoryServicePrincipalCertificate
,从而改进了用户体验。
添加了 XAER_RMFAIL 的另一个案例
在某些情况下,驱动程序仍返回 XAException 并出现错误 XAER_RMERR。 在 XA 错误处理中添加了一个额外案例,用于解决此问题。
buildParamTypeDefinitions
中的数组和字符串生成器的大小,以及删除不需要的字符串分配,提高了使用此方法的性能。
已将
serverName
修改为
LOGIN
数据包中包含
instanceName
serverName
现在追加到
instanceName
数据包中的
LOGIN
末尾。
更新了方法
supportTransaction
以反映服务器是否支持事务
解决了以下问题:由于 Azure Synapse 不支持
connection.rollback
中使用的语法,导致
supportTransaction
不适用于 Azure Synapse 数据库。
更新
sp_cursor
调用,以便传入表名而不是空字符串
解决了在更新一对多表时,接收到的
ResultSet
行更新不一致的问题。
已更新
supportsLikeEscapeClause()
以检查 Azure 数据仓库
解决了尽管明确不支持该功能,但
supportsLikeEscapeClause
仍会为 AzureDW 返回 true 的问题。
升级到最新的 OSGi JDBC 规范
从
osgi.compendium
5.0.0 升级到
osgi.service.jdbc
1.1.0,以符合 OSGi JDBC 规范 8.1.0 的合规性。
更新了依赖项
已更新
azure-identity
、
azure-security-keyvault-keys
、
gson
、
h2
和
msal
的依赖项版本。
BigDecimal
上存在的性能和内存问题
将所有与
BigDecimal
相关的更改还原为自 12.2 版本以来的状态。 此修复解决了观察到的性能问题。 用户在使用
BigDecimal
时需要小心,以避免出现之前提到的截断问题。
GitHub 问题 #2176
。
修复了 encrypt=strict 的服务器证书验证
修复以确保在
encrypt
设置为
strict
的情况下正确验证服务器证书。
GitHub 问题 #2174
。
修复了在 Azure DB 中设置重定向模式时
lockTimeout
未生效的问题。
修复了设置
lockTimeout
时的问题,因为它现在只适用于来自 Azure 外部的连接,而不是像以前一样适用于 Azure 内部的连接。
GitHub 问题 #2110
。
修复了使用
findSocketUsingThreading
时线程数量过高的问题
修复了未捕获的异常导致上游睡眠调用中断,从而导致重试速度过快的问题。
GitHub 问题 #2104
。
修复了共享计时器争用条件
修复了
SharedTimer
类中潜在的争用条件。
GitHub 问题 #2085
。
修复了存储过程和零结果
metaQuery
返回的错误
修复以下问题:如果在
metaQuery
执行存储过程后未返回任何结果,会返回未定义参数的错误。
GitHub 问题 #2063
。
修复了当插入中提供的列与表架构顺序不同时无效的批处理插入
修复使用
useBulkCopyForBatchInsert=true
可能导致列混乱和无效数据的问题。
GitHub 问题 #1992
。
修复了 XA 错误处理以重新引发 XAER_RMFAIL 而不是 XAER_RMERR
修复了以下问题:在提交 XA 事务时,如果 SQL Server 从主节点切换到备用节点,驱动程序会返回错误代码为 XAER_RMERR 的 XAException。
GitHub 问题 #1432
。
修复了活动 ID 和客户端 ID 行为,以保持与 JDBC 规范的一致性
修复了活动 ID 的行为,使其在流程生命周期内保持不变,在
PRELOGIN
中始终发送活动 ID,并为每个新连接递增序列。 修复了在流程的生命周期内保留的客户端 ID。
发布日期:2025 年 10 月 13 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.2.1 发布时间: 2025 年 10 月 13 日
修复了 12.2.1 中的问题:
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:12.2.0
发布日期:2023 年 1 月 31 日
DefaultAzureCredential
的支持
通过连接选项
authentication=ActiveDirectoryDefault
,同时支持 Azure 标识库中的
DefaultAzureCredential
和
IntelliJCredential
,从而改进了用户体验。
添加了一个新的连接属性
datetimeParameterType
,用于指定要用于日期/时间戳参数的数据类型
添加了连接属性
datetimeParameterType
,它允许用户明确指定转换为
datetime
或
datetime2
,从而提高了旧版数据库的兼容性。
azure-identity
、
azure-security-keyvault-keys
、
antlr4-runtime
、
bcprov-jdk15on
、
bcpkix-jdk15on
和
msal
的依赖项版本。
更新以动态检查
ExtendedSocketOption
类
解决了因缺少
ExtendedSocketOptions
而导致返回
NoClassDefFoundError
的错误。
unprocessedResponseCount
不会被过度减少
unprocessedResponseCount
仅在
doneToken.isFinal
为真时才需要递减,但此前它无论如何都会被递减。
GitHub 问题 #1971
。
修复了连接到错误的 SQLServer 主机的问题
修复了并发问题:驱动程序连接到多个 SQLServer 主机时,可能与错误的主机建立连接。
GitHub 问题 #1964
。
修复了不正确的
updateCount
对于
enablePrepareOnFirstPreparedStatementCall
和 prepexec/prepare,在 true/false 情况下都会发生不正确的更新计数。
GitHub 问题 #1961
。
修复了信任存储密码的加密/解密模糊处理方法中的并发问题
在信任存储密码模糊处理中为加密/解密添加了锁定。
GitHub 问题 #1939
。
修复了缓存帐户名称的大小写问题
修复了以下问题:将区分大小写的帐户名称发送到 Microsoft 身份验证库时,导致重复登录请求。
GitHub 问题 #1923
。
修复了查询取消错误
修复了批量查询中间歇性出现的查询取消问题。
GitHub 问题 #1896
。
修复了可调用语句错误
修复了可调用语句“索引超出界限”和“参数未定义”错误。
GitHub 问题 #1871
。
修复了在提取结果集时对 DONE 令牌进行检查的问题。
将之前修复 DONE_ERROR 时遗漏的情况添加进来,其中驱动程序忽略了由已终止会话引起的服务器返回的 DONE_ERROR 状态。
GitHub 问题 #1846
。
GitHub 问题 #1505
。
确保在所有情况下执行批处理时清除
batchParamValues
解决了在批量更新时发生故障,导致批次未被正确清除的问题。
GitHub 问题 #1767
。
修复了使用
BigDecimal
时出现的精度问题
修复了一个问题:默认情况下,
BigDecimal
以最高精度发送了值,这可能导致不必要的小数舍入。
GitHub 问题 #1489
。
GitHub 问题 #942
修复了
NONE
证明协议,使其在所有情况下都能正常工作。
修复了
NONE
证明协议背后的逻辑,使其适用于所有情况,而不仅仅是特定情况。
修复了
SecureStringUtil
中的竞争条件
修复了在创建
SecureStringUtil
时
SecureStringUtil
中出现的竞争条件。
下载 Microsoft JDBC Driver 12.2.0 for SQL Server (tar.gz)
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:11.2.4
发布日期:2025 年 10 月 13 日
修复了 11.2.4 中的问题:
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:11.2.3
发布日期:2023 年 1 月 12 日
修复了 11.2.3 中的问题:
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:11.2.2
发布日期:2022 年 12 月 15 日
修复了 11.2.2 中的问题:
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
美国英语
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:11.2.1
发布日期:2022 年 9 月 8 日
修复了 11.2.1 中的问题:
com.microsoft.azure:msal4j
成为可选依赖项
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
美国英语
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:11.2.0
发布日期:2022 年 8 月 4 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
ipaddresspreference
连接设置来控制行为。 有关详细信息,请参阅
设置连接属性
。
添加了对准备方法选择的支持
添加了新的连接字符串属性
prepareMethod
,用于切换
sp_prepare
和
sp_prepexec
的使用。 使用新的
prepareMethod
连接设置来控制行为。 有关详细信息,请参阅
设置连接属性
。
添加了
serverCertificate
encrypt=strict 的连接属性
添加了一个
serverCertificate
属性,该属性是服务器证书文件的路径(采用 PEM 格式)。 用于在使用设置为“严格”的“加密”时进行验证。 有关详细信息,请参阅
设置连接属性
。
缓存参数元数据调用
现在可缓存参数化查询的加密相关信息。 请参阅
将 Always Encrypted 与 JDBC 驱动程序配合使用
。
添加了对批量插入 null GUID 值的支持
解决了在大容量插入模式下无法插入 null 值的问题。
添加了对缓存托管标识令牌的支持
允许缓存从托管标识终结点获取的令牌。
preparedMethod=prepare
引起的错误。
修复了使用批处理查询时由
sp_prepare
引起的间歇性 null 预处理语句句柄错误(GitHub 问题 #1880)。
修复了一个错误:在并行建立多个连接时可能会抛出
IndexOutOfBoundsException
。
修复了
addressList
中的竞争条件,该问题在建立多个连接时
可能会导致
IndexOutOfBoundsException
GitHub Issue #1852
。
修复了取消“insert into”语句时发生的断言失败问题
修复了取消语句
GitHub 问题 #1849
时驱动程序可能断言的问题。
修复了在 SQL 数据库中杀掉会话时,未能如预期抛出异常的问题
新增了对 DONE_ERROR 状态令牌的检查,该令牌可能由服务器端被终止的会话引发
GitHub Issue #1846
。
托管身份重试间隔
修复了托管标识重试间隔问题,现在以指数方式正确回退
GitHub 问题 #1765
。
删除了在
executeCommand()
中对
connectionCommand()
的额外调用
删除了一个额外调用
executeCommand
,这导致了一些用户遇到性能问题
GitHub 问题 #1669
。
修复了未知令牌错误
selectMethod
修复了使用
0xA3
游标进行数据分类时出现的未知令牌错误
selectMethod
。
下载 Microsoft JDBC Driver 10.2.4 for SQL Server (tar.gz)
版本号:10.2.4 发布时间: 2025 年 10 月 13 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:10.2.2
发布日期:2022 年 12 月 13 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:10.2.1
发布日期:2022 年 5 月 12 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:10.2.4
发布日期:2025 年 10 月 13 日
修复了 10.2.4 中的问题:
版本号:10.2.3
发布日期:2023 年 1 月 12 日
修复了 10.2.3 中的问题:
版本号:10.2.2
发布日期:2022 年 12 月 13 日
修复了 10.2.2 中的问题:
KeepAlive
扩展选项的设置问题
版本号:10.2.1
发布日期:2022 年 5 月 12 日
修复了 10.2.1 中的问题:
SharedTimer
executeCommand()
内部对
connectionCommand()
的无关调用
版本号:10.2.0
发行时间:2022 年 1 月 31 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
aadSecurePrincipalId
和
aadSecurePrincipalSecret
已弃用
aadSecurePrincipalId
和
aadSecurePrincipalSecret
连接属性已弃用。 请改用用户名和密码。
已删除 getAADSecretPrincipalId API
BREAKING CHANGE:出于安全考虑,已移除 getAADSecretPrincipalId API。
SQL_variant
支持
添加了对检索
SQL_variant
时
DateTimeOffset
数据类型的支持。
Linux 中的非阻止随机
更新为在为 enclave 包生成 GUID 时使用非阻止随机调用。
针对域的 CNAME 解析
在指定域时,添加了 CNAME 解析。
更新了依赖项
已更新
azure-identity
、
azure-security-keyvault-keys
、
gson
和
bouncycastle
的依赖项版本。
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:9.4.1
发布日期:2021 年 12 月 7 日
修复了 9.4.1 中的问题:
LocalDateTime
和
LocalTime
被转换为
String
的问题
版本号:9.4.0
发布日期:2021 年 7 月 30 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
PRELOGIN
期间正确发送到数据库。
客户端进程 ID
客户端进程 ID 现在会在 Java 9+ 上运行时发送到服务器。 Java 8 保留以前发送
0
作为客户端进程 ID 的功能。
更新了依赖项
已更新
azure-identity
、
azure-security-keyvault-keys
、
gson
、
antlr
和
bouncycastle
的依赖项版本。
已删除不必要的引用
删除了 Java 8 jar 中未使用的特定于 Java 9 的类引用
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:9.2.1
发布日期:2021 年 3 月 2 日
修复了9.2.1 中的问题:
ActiveDirectoryServicePrincipal
客户端密码为空的问题。
版本号:9.2.0
发布日期:2021 年 1 月 29 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
除 JDK 11.0 和 1.8 外,Microsoft JDBC Driver 9.2 for SQL Server 现在还与 Java 开发工具包 (JDK) 版本 15.0 兼容。
ADAL
库迁移到了更新式的 Azure 密钥保管库 和 Azure Identity 等效项。
依赖项变更
如果利用 Azure Active Directory 身份验证或 Azure 密钥保管库,请确保更新应用程序依赖项。
使用 Azure 密钥保管库 提供程序
或
Azure Active Directory 身份验证
时,请参阅依赖项要求
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:8.4.1
发布日期:2020 年 8 月 27 日
已解决的问题:
SQLServerConnectionPoolProxy
与
delayLoadingLobs
不兼容的问题
NullPointerException
相关的潜在
delayLoadingLobs
问题
版本号:8.4.0
发布日期:2020 年 7 月 31 日
除 JDK 11.0 和 1.8 外,Microsoft JDBC Driver 8.4 for SQL Server 现在还与 Java 开发工具包 (JDK) 版本 14.0 兼容。
sendTemporalDataTypesAsStringForBulkCopy
。 默认情况下,此布尔属性为 TRUE。
请参阅
使用 JDBC 驱动程序进行批量复制
。
版本号:8.2.2 发布时间:2020 年 3 月 24 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
zip 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:8.2.2
发布日期:2020 年 3 月 24 日
已解决的问题:
版本号:8.2.1
发布日期:2020 年 2 月 26 日
已解决的问题:
SQLServerResultSet.getObject()
检索
java.time.LocalTime
或
java.time.LocalDate
类型数据时可能出现的
NullPointerException
问题。
版本号:8.2.0
发布日期:2020 年 1 月 31 日
除 JDK 11.0 和 1.8 外,Microsoft JDBC Driver 8.2 for SQL Server 现在还与 JDK 开发工具包 (JDK) 版本 13.0 兼容。
Microsoft JDBC Driver 8.2 for SQL Server 现在支持带有安全加密区的全程加密。 有关更多详细信息和示例代码,请参阅 在 JDBC 驱动程序中使用带有安全区的 Always Encrypted 。
java.sql.Date
)、
datetime
(
java.sql.Timestamp
)、
datetime2
(
java.sql.Timestamp
)、
smalldatetime
(
java.sql.Timestamp
) 和
时间
(
java.sql.Time
)。
1
由于在处理时区方面,
java.util.Calendar
和
java.time.LocalDateTime
API 之间存在差异,因此与由用户提供的
java.util.Calendar
对象关联的时间数据类型或
microsoft.sql.DateTimeOffset
数据类型不会受益于此改进。
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
自解压 exe 文件中的驱动程序:
中文(简体)
|
中文(繁体)
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:7.4.1
发布日期:2019 年 8 月 2 日
已解决的问题:
hashCode()
和
equals()
的新 API 实现回滚至
SQLServerDataTable
和
SQLServerDataColumn
的版本
版本号:7.4.0
发布日期:2019 年 7 月 31 日
除 JDK 11.0 和 1.8 外,Microsoft JDBC Driver 7.4 for SQL Server 现在还与 JDK 开发工具包 (JDK) 版本 12.0 兼容。
useFmtOnly
添加了 connection 属性。
此功能允许用户选择通过
ParameterMetaData
旧版 API 进行查询
SET FMTONLY ON
。 此设置对于
sp_describe_undeclared_parameters
不按预期执行的情况很有用。
更多详细信息和限制。
请参阅
通过 useFmtOnly 检索 ParameterMetaData
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
自解压 exe 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
版本号:7.2.2
发布日期:2019 年 4 月 16 日
已解决的问题:
版本号:7.2.1
发布日期:2019 年 2 月 11 日
已解决的问题:
版本号:7.2.0
发布日期:2019 年 1 月 31 日
accessToken
以建立安全连接。
使用此身份验证模式的更多详细信息以及示例应用程序。
请参阅
使用 Microsoft Entra 身份验证进行连接
。
SQLServerException.getSQLServerError()
SQLServerError
更多详细信息。
请参阅
“处理错误
”。
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
自解压 exe 文件中的驱动程序:
中文(简体)
|
中文(繁体)
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
tar.gz 文件中的驱动程序:
简体中文
|
繁体中文
|
英语(美国)
|
法语
|
德语
|
意大利语
|
日语
|
韩语
|
葡萄牙语(巴西)
|
俄语
|
西班牙语
Microsoft JDBC Driver 7.0 for SQL Server 完全符合 JDBC API 规范 4.2。 根据 Java 版本兼容性命名 7.0 包中的 jar。 例如,7.0 包中的 mssql-jdbc-7.0.0.jre10.jar 文件应与 Java 10 配合使用。
除 Java 开发工具包 (JDK) 版本 1.8 外,Microsoft JDBC Driver 7.0 for SQL Server 现在还与 JDK 10.0 兼容。 此更新还通过其 MANIFEST 文件将驱动程序的
Automatic-Module-Name
公开为
com.microsoft.sqlserver.jdbc
。
Microsoft JDBC Driver 7.0 for SQL Server 现在提供对 SQL Server 空间数据类型 Geography 和 Geometry 的支持。 有关空间数据类型 API 及其用法的详细信息,请参阅 “使用空间数据类型 ”。
Microsoft JDBC Driver 7.0 for SQL Server 现在实现了
beginRequest()
类中的
endRequest()
和
java.sql.Connection
API。 这些 API 是使用 JDBC 4.3 规范和 JDK 9 引入的。 有关这些 API 的驱动程序实现的详细信息,请参阅
JDBC 驱动程序的 JDBC 4.3 符合性
。
Microsoft JDBC Driver 7.0 for SQL Server 支持任何具备此功能的目标数据库的 SQL 数据发现和分类。 驱动程序现在公开
SQLServerResultSet.getSensitivityClassification()
API 以从提取的
ResultSet
中提取此信息。
有关如何将此功能与 JDBC 驱动程序配合使用的详细信息,请参阅 SQL 数据发现和分类 JDBC 示例 。
Microsoft JDBC Driver 7.0 for SQL Server 引入了新的连接属性
useBulkCopyForBatchInsert
。 只有 Azure Synapse Analytics 才支持此属性。
默认情况下禁用此属性。 当将大量数据推送到 Azure Synapse Analytics 时,可以启用此属性以提高用户应用程序的性能。 启用此属性将更改批插入操作的行为,以切换为对用户提供的数据执行大容量复制操作。 有关此属性及其限制的详细信息,请参阅 使用大容量复制 API 进行批量插入操作 。
Microsoft JDBC Driver 7.0 for SQL Server 引入了新的连接属性
cancelQueryTimeout
以取消
queryTimeout
和
java.sql.Connection
对象上的
java.sql.Statement
。
Microsoft JDBC Driver 7.0 for SQL Server 为
SQLServerColumnEncryptionAzureKeyVaultProvider
重新引入了先前删除的构造函数。 它允许通过用
SQLServerKeyVaultAuthenticationCallback
实现的自定义方法进行身份验证来提取访问令牌。
新的构造函数具有以下定义:
/* This constructor is added to provide backward compatibility with 6.0
* version of the driver. It is marked deprecated for removal in the next
* stable release.
@Deprecated
public SQLServerColumnEncryptionAzureKeyVaultProvider(
SQLServerKeyVaultAuthenticationCallback authenticationCallback,
ExecutorService executorService) throws SQLServerException;
/*New constructor to replace the above constructor*/
public SQLServerColumnEncryptionAzureKeyVaultProvider(
SQLServerKeyVaultAuthenticationCallback authenticationCallback) throws SQLServerException;
更新了“用于 Java 的 Microsoft Azure Active Directory 身份验证库 (ADAL4J)”版本:1.6.0
Microsoft JDBC Driver 7.0 for SQL Server 将其 Maven 依赖项更新为 “Microsoft Azure Active Directory 身份验证库 (ADAL4J) for Java” 的版本 1.6.0。 有关依赖项的详细信息,请参阅 Microsoft JDBC Driver for SQL Server 的功能依赖项。
发布日期:2018 年 2 月 27 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
自解压 exe 文件中的驱动程序:简体中文 | 繁体中文 | 英语(美国) | 法语 | 德语 | 意大利语 | 日语 | 韩语 | 葡萄牙语(巴西) | 俄语 | 西班牙语
tar.gz 文件中的驱动程序:简体中文 | 繁体中文 | 英语(美国) | 法语 | 德语 | 意大利语 | 日语 | 韩语 | 葡萄牙语(巴西) | 俄语 | 西班牙语
Microsoft JDBC Driver 6.4 for SQL Server 完全符合 JDBC 规范 4.1 和 4.2。 根据 Java 版本兼容性命名 6.4 包中的 jar。 例如,6.4 包中的 mssql-jdbc-6.4.0.jre8.jar 文件必须与 Java 8 配合使用。
支持 JDK 9
除了支持 JDK 8.0 和 7.0 以外,驱动程序还支持 JDK 版本 9.0。
JDBC 4.3 符合性
除了支持 4.1 和 4.2 以外,驱动程序还支持 Java Database Connectivity API 4.3 规范。 JDBC 4.3 API 方法已添加,但尚未实现。 有关详细信息,请参阅 JDBC 驱动程序的 JDBC 4.3 符合性。
添加了连接属性:sslProtocol
新的连接属性允许用户指定 TLS 协议关键字。 可能的值包括:“TLS”“TLSv1”“TLSv1.1”和“TLSv1.2”。有关详细信息,请参阅 SSLProtocol。
弃用了连接属性:fipsProvider
连接属性 fipsProvider 已从接受的连接属性的列表中删除。 有关详细信息,请参阅相关的 GitHub 拉取请求。
添加了用于指定自定义 TrustManager 的连接属性
该驱动程序现支持指定自定义 TrustManager,并增加了 trustManagerClass 和 trustManagerConstructorArg 连接属性。 可以动态指定基于每个连接信任的一组证书,而无需修改 Java 虚拟机 (JVM) 环境的全局设置。
添加了对表值参数中的 datetime/smallDatetime 的支持
驱动程序现在支持在使用表值参数 (TVP) 时的数据类型 datetime 和 smallDatetime。
添加了对sql_variant数据类型的支持
JDBC 驱动程序现在支持 SQL Server 的 sql_variant 数据类型。
sql_variant数据类型还支持 TVP 和大容量复制等功能,但具有以下限制:
对于日期值:
当您使用 TVP 填充包含以 datetime、smalldatetime 或 date 值形式存储在 sql_variant 列中的表时,调用结果集上的 getDateTime()、getSmallDateTime() 或 getDate() 方法将不起作用,并会引发以下异常:
java java.lang.String cannot be cast to java.sql.Timestamp
作为一种解决办法,可改为使用 getString() 或 getObject() 方法。
使用 TVP 和 sql_variant 处理 null 值:
如果使用 TVP 填充表并将 NULL 值发送到 sql_variant 列类型,则会遇到异常。 目前不支持在 TVP 中插入具有列类型的 NULL 值 sql_variant 。
实现了预处理语句元数据缓存
JDBC 驱动程序已实现预处理语句元数据缓存以改进性能。 现在驱动程序支持使用 disableStatementPooling 和 statementPoolingCacheSize 连接属性缓存驱动程序中的预处理语句元数据。 默认情况下,该功能被禁用。 有关详细信息, 请参阅 JDBC 驱动程序中的 Prepared 语句元数据缓存。
Linux/macOS 现已开始支持 Azure AD 集成身份验证
JDBC 驱动程序现在支持在所有受支持的操作系统(Windows、Linux 和 macOS)上使用 Azure Active Directory (Azure AD) 集成认证与 Kerberos。 或者,在 Windows 操作系统上,用户可以使用 mssql-jdbc_auth-<version>-<arch>.dll 进行身份验证。
更新了“用于 Java 的 Microsoft Azure Active Directory 身份验证库 (ADAL4J)”版本:1.4.0
JDBC 驱动程序已将“用于 Java 的 Microsoft Azure Active Directory 身份验证库 (ADAL4J)”上的 Maven 依赖项更新为版本 1.4.0。 有关依赖项的详细信息,请参阅 Microsoft JDBC Driver for SQL Server 的功能依赖项。
发布日期:2017 年 9 月 29 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
自解压 exe 文件中的驱动程序:简体中文 | 繁体中文 | 英语(美国) | 法语 | 德语 | 意大利语 | 日语 | 韩语 | 葡萄牙语(巴西) | 俄语 | 西班牙语
tar.gz 文件中的驱动程序:简体中文 | 繁体中文 | 英语(美国) | 法语 | 德语 | 意大利语 | 日语 | 韩语 | 葡萄牙语(巴西) | 俄语 | 西班牙语
Microsoft JDBC Driver 6.2 for SQL Server 完全符合 JDBC 规范 4.1 和 4.2。 根据 Java 版本兼容性命名 6.2 包中的 jar。 例如,建议将 6.2 包中的 mssql-jdbc-6.2.2.jre8.jar 文件与 Java 8 配合使用。
6.2 版本
版本号:6.2.2
发布日期:2017 年 10 月 3 日
已解决的问题:
已将 ADAL4J 依赖项更新到版本 1.2.0,并将 Azure 密钥保管库 依赖项更新到版本 1.0.0
版本号:6.2.1
发布日期:2017 年 7 月 14 日
已解决的问题:
修正使用 preparedStatement 运行没有参数的查询时的问题
版本号:6.2.0
发布日期:2017 年 6 月 30 日
在 2017 年 6 月 29 日发布的 JDBC 6.2 RTW 中发现了元数据缓存改进方面的问题。 改进已回滚,并且新的 jar(版本 6.2.1)已于 2017 年 7 月 17 日发布。
另一个改进已将 Azure 密钥保管库 依赖库版本升级到 1.0.0,并且新的 jar(版本 6.2.2)已于 2017 年 10 月 19 日发布。
通过上述链接、GitHub 或 Maven Central 下载 JDBC Driver 6.2 的最新更新。 请更新您的项目以使用 6.2.2 版本的 jar 包。 有关详细信息,请查看 6.2.1 和 6.2.2 的发行说明。
适用于 Linux 的 Azure AD 支持
通过用户名/密码和访问令牌方法使用 Azure AD 身份验证将 Linux 应用程序连接到 Azure SQL 数据库。
已启用 FIPS 的 JVM
JDBC 驱动程序现可在以符合美国联邦信息处理标准 (FIPS) 140 的模式运行的 JVM 上使用,以符合联邦标准。
Kerberos 身份验证改进
JDBC 驱动程序现在具有以下支持:
Kerberos 配置无法修改或无法检索新令牌或 keytab 的应用程序的主体/密码方法。 此方法可用于对仅允许 Kerberos 身份验证的 SQL Server 实例进行身份验证。
跨领域身份验证,方法是使用 Kerberos 集成身份验证,而无需明确设置服务器 SPN。 驱动程序现在会自动计算领域,即使未提供领域也是如此。
Kerberos 约束委派,方法是通过数据源接受被模拟用户凭据作为 GSS 凭据对象。 然后使用该模拟凭据来建立 Kerberos 连接。
添加了超时
JDBC 驱动程序现在支持以下可配置超时。 可以根据应用程序的需要进行更改。
Query timeout 用于控制在运行查询时发生超时之前等待的秒数。
Socket timeout 用于指定在套接字读取或接受操作超时前等待的毫秒数。
版本号:6.1.0
发布日期:2016 年 11 月 17 日
Microsoft JDBC Driver 6.1 for SQL Server 完全符合 JDBC 规范 4.1 和 4.2。 此版本是 JDBC 驱动程序的初始开源版本。 可在 GitHub v6.1.0 标记 中找到源代码。 其中生成了 mssql-jdbc-6.1.0.jre8.jar 和 mssql-jdbc-6.1.0.jre7.jar 文件,它们对应于 Java 版本兼容性。
发布日期:2017 年 1 月 17 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
自解压 exe 文件中的驱动程序:简体中文 | 繁体中文 | 英语(美国) | 法语 | 德语 | 意大利语 | 日语 | 韩语 | 葡萄牙语(巴西) | 俄语 | 西班牙语
tar.gz 文件中的驱动程序:简体中文 | 繁体中文 | 英语(美国) | 法语 | 德语 | 意大利语 | 日语 | 韩语 | 葡萄牙语(巴西) | 俄语 | 西班牙语
Microsoft JDBC Driver 6.0 for SQL Server 完全符合 JDBC 规范 4.1 和 4.2。 根据 JDBC API 版本兼容性命名 6.0 包中的 jar。 例如,6.0 包中的 sqljdbc42.jar 文件符合 JDBC API 4.2。 同样,sqljdbc41.jar 文件符合 JDBC API 4.1。
若要确保 sqljdbc42.jar 或 sqljdbc41.jar 文件正确,请运行以下代码行。 如果输出为“驱动程序版本:6.0.7507.100”,则具有 JDBC 驱动程序 6.0 包。
Connection conn = DriverManager.getConnection("jdbc:sqlserver://<server>;encrypt=true;user=<user>;password=<password>;");
System.out.println("Driver version: " + conn.getMetaData().getDriverVersion());
始终加密 (Always Encrypted)
驱动程序支持 SQL Server 2016 中的 Always Encrypted 功能。 此功能可确保从不在 SQL Server 实例中以纯文本形式显示敏感数据。 Always Encrypted 工作方式是,以透明方式加密应用程序中的数据,这样 SQL Server 就只会处理已加密数据,而不会处理纯文本值。 即使 SQL Server 实例或主机计算机遭入侵,攻击者也只能获得敏感数据的已加密文本。 有关详细信息,请参阅 将 Always Encrypted 与 JDBC 驱动程序配合使用。
国际化域名
驱动程序支持服务器名称的国际化域名 (IDN)。 有关详细信息,请参阅 JDBC 驱动程序文章国际功能 中的“使用国际域名”。
参数化查询
驱动程序现在支持,使用已准备的语句为复杂查询(如子查询和/或联接)检索参数元数据。 此改进仅对 SQL Server 2012 及更高版本有效。
Azure Active Directory
Azure AD 身份验证是一种使用 Azure AD 中的标识连接到 Azure SQL 数据库的机制。 Azure AD 身份验证可用于集中管理数据库用户的标识,并替代 SQL Server 身份验证。
可使用 JDBC Driver 6.0 指定 JDBC 连接字符串中的 Azure AD 凭据以连接到 Azure SQL 数据库。 有关详细信息,请参阅设置连接属性一文中的身份验证属性。
借助 TVP,可以将多行数据从客户端应用程序轻松封送到 SQL Server,而无需进行多次往返或使用特殊的服务器端逻辑来处理数据。 可使用 TVP 来封装客户端应用程序中的数据行,并以一个参数化命令的形式将数据发送到服务器。 传入数据行将存储在随后可使用 Transact-SQL 对其进行操作的表变量中。 有关详细信息,请参阅使用表值参数。
AlwaysOn 可用性组
驱动程序现在支持透明连接到 AlwaysOn 可用性组。 驱动程序快速发现服务器基础结构的当前 AlwaysOn 拓扑,并以透明方式连接到当前的活动服务器。
发布日期:2015 年 8 月 24 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
自解压 exe 文件中的驱动程序:简体中文 | 繁体中文 | 英语(美国) | 法语 | 德语 | 意大利语 | 日语 | 韩语 | 葡萄牙语(巴西) | 俄语 | 西班牙语
tar.gz 文件中的驱动程序:简体中文 | 繁体中文 | 英语(美国) | 法语 | 德语 | 意大利语 | 日语 | 韩语 | 葡萄牙语(巴西) | 俄语 | 西班牙语
Microsoft JDBC Driver 4.2 for SQL Server 完全符合 JDBC 规范 4.1 和 4.2。 根据 JDBC API 版本兼容性命名 4.2 包中的 jar。 例如,4.2 包中的 sqljdbc42.jar 文件符合 JDBC API 4.2。 同样,sqljdbc41.jar 文件符合 JDBC API 4.1。
若要确保 sqljdbc42.jar 或 sqljdbc41.jar 文件正确,请运行以下代码行。 如果输出为“驱动程序版本:4.2.6420.100”,则具有 JDBC 驱动程序 4.2 包。
Connection conn = DriverManager.getConnection("jdbc:sqlserver://<server>;encrypt=true;user=<user>;password=<password>;");
System.out.println("Driver version: " + conn.getMetaData().getDriverVersion());
对 JDK 8 的支持
除了支持 JDK 7.0、6.0 和 5.0 以外,驱动程序还支持 JDK 版本 8.0。
JDBC 4.1 和 4.2 的遵从性
除了支持 4.0 以外,驱动程序还支持 Java Database Connectivity API 4.1 和 4.2 规范。 有关详细信息,请参阅 JDBC 驱动程序的 JDBC 4.1 符合性 ,以及 JDBC 驱动程序的 JDBC 4.2 符合性。
大容量复制功能可用于将大量数据快速复制到 SQL Server 数据库中的表或视图。 有关详细信息,请参阅 使用 JDBC 驱动程序进行大容量复制。
XA 事务回滚选项
驱动程序新增了适用于未准备好事务的现有自动回滚的超时选项。 有关详细信息,请参阅了解 XA 事务。
新 Kerberos 主体连接属性
驱动程序使用新连接属性,提高 Kerberos 连接灵活性。 有关详细信息,请参阅 使用 Kerberos 集成身份验证连接到 SQL Server。
发布日期:2014 年 12 月 12 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
自解压 exe 文件中的驱动程序:简体中文 | 繁体中文 | 英语(美国) | 法语 | 德语 | 意大利语 | 日语 | 韩语 | 葡萄牙语(巴西) | 俄语 | 西班牙语
tar.gz 文件中的驱动程序:简体中文 | 繁体中文 | 英语(美国) | 法语 | 德语 | 意大利语 | 日语 | 韩语 | 葡萄牙语(巴西) | 俄语 | 西班牙语
支持 JDK 7
除了支持 JDK 6.0 和 5.0 以外,驱动程序还支持 JDK 版本 7.0。
发布日期:2012 年 3 月 6 日
如果你需要下载非所检测到的语言的驱动程序,则可使用以下直接链接。
自解压 exe 文件中的驱动程序:简体中文 | 繁体中文 | 英语(美国) | 法语 | 德语 | 意大利语 | 日语 | 韩语 | 葡萄牙语(巴西) | 俄语 | 西班牙语
tar.gz 文件中的驱动程序:简体中文 | 繁体中文 | 英语(美国) | 法语 | 德语 | 意大利语 | 日语 | 韩语 | 葡萄牙语(巴西) | 俄语 | 西班牙语
Itanium 不支持 JDBC Driver 应用程序
Itanium 计算机不支持 Microsoft JDBC Driver for SQL Server。
JDBC 驱动程序概述