这里的“包”可以从两个层面来理解:

- JDBC 驱动程序包:这是 Java 程序与 SQL Server 数据库通信的“桥梁”,是必须引入的外部库。
- Java 标准库包:这是 Java 自带的包,用于处理数据库连接、执行 SQL 语句等操作。
下面我将分别进行详细说明。
JDBC 驱动程序包 (必须下载)
这是最核心的部分,Java 程序本身不包含特定数据库的连接逻辑,需要一个 JDBC 驱动来充当翻译,对于 SQL Server,官方推荐的驱动是 Microsoft JDBC Driver。
如何获取
你可以从微软官方网站下载驱动程序,下载页面会提供多个版本(如 6.2, 6.4, 8.4, 11.2 等),请根据你的 Java 版本、SQL Server 版本和项目需求选择合适的版本。
官方下载地址: https://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server

常用版本选择建议
- 对于现代项目:推荐使用 JDBC Driver 8.4 (for SQL Server) 或更高版本(如 11.2),它支持 Java 8、11、17 等版本,性能更好,功能更全。
- 对于旧项目:如果你的项目还在使用 Java 7,可以选择 JDBC Driver 6.4。
包名和核心类
下载并解压后,你会看到一个 .jar 文件(mssql-jdbc-11.2.0.jre11.jar),这个 JAR 文件包含了驱动程序的所有类,当你把它添加到你的项目中后,就可以使用以下核心类:
com.microsoft.sqlserver.jdbc.SQLServerDriver驱动程序的入口类,在建立连接时,JVM 会通过这个类来加载驱动。
com.microsoft.sqlserver.jdbc.SQLServerDataSource数据源类,用于配置数据库连接信息(如 URL、用户名、密码),是现代连接管理(如连接池)的推荐方式。
com.microsoft.sqlserver.jdbc.Connection代表与数据库的物理连接。
(图片来源网络,侵删)com.microsoft.sqlserver.jdbc.Statement/PreparedStatement/CallableStatement用于执行 SQL 语句的对象。
Java 标准库包 (自带)
这些是 Java Development Kit (JDK) 自带的包,你无需额外下载,只需要在代码中 import 即可。
核心包
-
java.sql- 这是 JDBC 1.0 和 2.0 核心 API 的包,包含了所有与数据库操作相关的基础接口和类。
- 常用类/接口:
Connection: 代表一个数据库连接。Statement: 用于执行静态 SQL 语句并返回它所生成结果的对象。PreparedStatement: Statement 的子接口,用于执行预编译的 SQL 语句,能有效防止 SQL 注入,是强烈推荐使用的。CallableStatement: 用于调用数据库存储过程。ResultSet: 代表 SQL 查询的结果集。DriverManager: 用于管理 JDBC 驱动程序。SQLException: 处理数据库操作中发生的异常。
-
javax.sql- 这是 JDBC 的扩展 API,提供了更高级的功能,如连接池、分布式事务等。
- 常用接口:
DataSource:DataSource接口是DriverManager的替代方案,提供了更强大、更灵活的连接管理方式,特别是与连接池集成时,微软的SQLServerDataSource就是实现了DataSource接口的一个具体类。
实战示例:连接 SQL Server
下面是一个完整的代码示例,展示了如何使用上述的包和类来连接 SQL Server 数据库并执行一个查询。
步骤 1: 添加 JDBC 驱动到项目
如果你使用 Maven,在 pom.xml 文件中添加以下依赖:
<!-- 使用最新的 11.2.0 版本,JDK 要求 11+ -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>11.2.0.jre11</version>
</dependency>
<!-- 如果你的项目是 JDK 8,请使用 6.4 或 8.4 版本 -->
<!-- <dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>8.4.1.jre8</version>
</dependency> -->
如果你使用 Gradle,在 build.gradle 文件中添加:
// 使用最新的 11.2.0 版本,JDK 要求 11+ implementation 'com.microsoft.sqlserver:mssql-jdbc:11.2.0.jre11' // 如果你的项目是 JDK 8,请使用 6.4 或 8.4 版本 // implementation 'com.microsoft.sqlserver:mssql-jdbc:8.4.1.jre8'
如果你是手动管理 JAR 文件,请将下载的 .jar 文件添加到你的项目的类路径(Classpath)中。
步骤 2: 编写 Java 代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
// 导入 SQL Server 驱动的特定类(可选,但有助于IDE识别)
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
public class SqlServerJdbcExample {
public static void main(String[] args) {
// --- 1. 定义数据库连接信息 ---
// 请根据你的实际情况修改以下信息
String serverName = "localhost"; // 或你的服务器IP
String portNumber = "1433";
String databaseName = "YourDatabaseName";
String user = "your_username";
String password = "your_password";
// --- 2. 构建数据库连接 URL ---
// 旧式 URL (使用 DriverManager)
// String url = "jdbc:sqlserver://" + serverName + ":" + portNumber
// + ";databaseName=" + databaseName + ";user=" + user + ";password=" + password;
// --- 3. 使用 DataSource (推荐方式) ---
SQLServerDataSource ds = new SQLServerDataSource();
ds.setServerName(serverName);
ds.setPortNumber(Integer.parseInt(portNumber));
ds.setDatabaseName(databaseName);
ds.setUser(user);
ds.setPassword(password);
// Connection 对象用于管理数据库连接
try (Connection connection = ds.getConnection()) {
System.out.println("成功连接到 SQL Server 数据库!");
// --- 4. 创建 PreparedStatement 并执行 SQL 查询 ---
String sql = "SELECT id, name, email FROM users WHERE id = ?";
try (PreparedStatement pstmt = connection.prepareStatement(sql)) {
// 设置查询参数
pstmt.setInt(1, 1); // 假设我们要查询 id 为 1 的用户
// 执行查询,返回一个 ResultSet 对象
try (ResultSet rs = pstmt.executeQuery()) {
// --- 5. 处理结果集 ---
System.out.println("查询结果:");
while (rs.next()) {
// 通过列名获取数据,更具可读性
int id = rs.getInt("id");
String name = rs.getString("name");
String email = rs.getString("email");
// 打印到控制台
System.out.println("ID: " + id + ", Name: " + name + ", Email: " + email);
}
}
}
} catch (SQLException e) {
// 捕获并处理 SQL 异常
System.err.println("数据库连接或查询失败!");
e.printStackTrace();
}
}
}
| 类别 | 包/库名称 | 描述 | 如何获取 |
|---|---|---|---|
| JDBC 驱动 | com.microsoft.sqlserver.jdbc.* |
SQL Server 的官方 JDBC 驱动,实现 Java 与 SQL Server 的通信。 | 从微软官网下载 .jar 文件,或通过 Maven/Gradle 添加依赖。 |
| Java 核心 | java.sql.* |
JDBC 的核心 API,提供连接、执行语句、处理结果集等基础接口。 | JDK 自带,无需额外安装。 |
| Java 扩展 | javax.sql.* |
JDBC 的高级 API,提供 DataSource 等更强大的功能。 |
JDK 自带,无需额外安装。 |
对于任何 Java 连接 SQL Server 的项目,你都需要 引入微软的 JDBC 驱动包,并在代码中 使用 java.sql 和 javax.sql 中的接口,配合驱动包提供的实现类来完成数据库操作。
