全栈:JDBC驱动版本和SQLserver版本是否有关系?怎么选择JDBC的版本号?
研究ssm项目的pom.xml文件的时候发现,jdbc数据库连接和SQLserver的版本是否有关系,jdbc驱动应该下载哪个版本的。整理了一些资料,记录下来。
问题1:这两张图的版本号有什么关系?
图1:
图2:
第一个版本号(12.6.4.jre11)是Microsoft SQL Server JDBC驱动的版本。这个驱动用于Java应用程序连接SQL Server数据库。
第二个版本号(10.50.1600.1)是SQL Server Native Client(也称为SNAC)的版本。Native Client是一个独立的API,用于访问SQL Server数据库,通常被ODBC和OLE DB应用程序使用。
它们之间的关系:
- 属于不同的组件:
- JDBC驱动:专为Java程序提供连接。
- Native Client:为C/C++等本地应用程序提供连接(通过ODBC/OLE DB)。
- 版本号没有直接对应关系:
- JDBC驱动的版本号(如12.6.4)是独立发展的,与SQL Server数据库的版本号不同。
- Native Client的版本号(10.50.1600.1)与SQL Server数据库的版本号一致(10.50对应SQL Server 2008 R2)。
这两个版本号属于不同组件,它们之间没有直接对应关系。
问题2:怎么选择JDBC的版本号?(一般情况下看jre就可以了)
适用于 SQL Server 的 Microsoft JDBC 驱动程序支持矩阵
JDBC驱动程序的系统要求
下载链接:Microsoft JDBC Driver For SQL Server
适用于 SQL Server 的 Microsoft JDBC 驱动程序
核心兼容性矩阵 (mssql-jdbc
)
mssql-jdbc 驱动版本 | 支持的 SQL Server 版本 | 支持的 Java 版本 (JRE) | 重要特性/变化说明 |
---|---|---|---|
12.4.x (最新稳定) | 2008+ (建议 2012 SP3+) Azure SQL DB | 8, 11, 17 | 持续维护更新,修复 Bug,增强安全性。强烈推荐使用此版本线。 |
11.2.x | 2008+ (建议 2012 SP3+) Azure SQL DB | 8, 11 | LTS (长期支持) 版本线。接收关键安全更新。 |
10.2.x | 2008+ (建议 2012 SP3+) Azure SQL DB | 8 | |
9.4.x | 2012+ Azure SQL DB | 8 | 停止支持: 2023 年 1 月 31 日。不再推荐使用。 |
9.2.x | 2008+ (建议 2012+) Azure SQL DB | 7, 8 | 停止支持: 2022 年 6 月 30 日。不再推荐使用。 |
8.4.x | 2012+ Azure SQL DB | 8 | 停止支持: 2021 年 7 月。不再推荐使用。 |
8.2.x | 2008+ (建议 2012+) Azure SQL DB | 7, 8 | 停止支持: 2021 年 1 月。不再推荐使用。 |
7.4.x | 2012+ Azure SQL DB | 8 | 停止支持: 2020 年 7 月。不再推荐使用。 |
7.2.x | 2008+ (建议 2012+) Azure SQL DB | 7, 8 | 停止支持: 2020 年 2 月。不再推荐使用。 |
6.4.x | 2008+ (建议 2012+) Azure SQL DB | 7, 8 | 停止支持: 2019 年 7 月。不再推荐使用。首次使用 mssql-jdbc 名称。 |
如果有大神,请帮忙指点一下。