杰瑞科技汇

Java连接SQLServer需什么包?

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

Java连接SQLServer需什么包?-图1
(图片来源网络,侵删)
  1. JDBC 驱动程序包:这是 Java 程序与 SQL Server 数据库通信的“桥梁”,是必须引入的外部库。
  2. 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

Java连接SQLServer需什么包?-图2
(图片来源网络,侵删)

常用版本选择建议

  • 对于现代项目:推荐使用 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

    代表与数据库的物理连接。

    Java连接SQLServer需什么包?-图3
    (图片来源网络,侵删)
  • 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.sqljavax.sql 中的接口,配合驱动包提供的实现类来完成数据库操作。

分享:
扫描分享到社交APP
上一篇
下一篇