Microsoft JDBC Driver for SQL Server

Microsoft JDBC Driver for SQL Server

SQL Server官方Java数据库驱动

开发官网

应用介绍

Java 应用要连 SQL Server,网上翻出来的不是十年前的 jtds 就是某个论坛帖里的 jar 包,连上之后 Always Encrypted 不支持、Entra ID 认证不认、时区又对不上。微软自己维护的这个驱动是官方答案:纯 Java 的 Type 4 驱动,只要把 jar 丢进 classpath,用标准 JDBC API 就能连,机器上不用装任何本地客户端。

它跟着 SQL Server 和 Azure SQL 的特性走——连接字符串里 `encrypt=true` 直接开 TLS,Always Encrypted 的列在驱动层透明解密,Microsoft Entra ID 的几种认证方式都有对应的 authentication 参数。因为是纯 Java,Windows、Linux、macOS、Solaris 只要有 JVM 就能跑,容器里也不用额外装东西。MIT 协议,源码在 GitHub 上。

软件功能



标准 JDBC 接口:实现 JDBC 规范,DriverManager、Connection、PreparedStatement 这一套照常用,框架层(Hibernate、MyBatis、Spring Data)无需特殊适配。

连接字符串开箱即用:`jdbc:sqlserver://host:1433;databaseName=mydb;encrypt=true` 这种形式,超时、连接池、故障转移伙伴、应用名等都是分号分隔的参数。

多种认证方式:SQL 登录、Windows 集成认证、Microsoft Entra ID(密码、托管标识、服务主体、交互式)都由 authentication 参数选择。

Always Encrypted 透明解密:加密列在驱动层自动解密,应用代码拿到的是明文,密钥不经过数据库引擎。

连 Azure 那一套:SQL Server、Azure SQL Database、Azure SQL 托管实例、Azure Synapse 用同一个驱动,换目标只改连接字符串。

纯 Java 跨平台:没有本地库依赖,任何有 JVM 的系统都能跑,Docker 镜像里不用额外装 ODBC 之类的东西。

批量与流式读写:支持批量插入、大对象流式读取,处理大结果集时不用整份载进内存。

MIT 开源:源码在 GitHub 上公开,问题可以直接提 issue,不是只能等补丁。

应用截图

标签:驱动Java