杰瑞科技汇

Java连接SQL Server需哪个jar包?

下载 JDBC 驱动程序

你需要从 Microsoft 官网下载适用于 SQL Server 的 JDBC 驱动。

Java连接SQL Server需哪个jar包?-图1
(图片来源网络,侵删)
  1. 访问官网下载页面: Microsoft JDBC Drivers for SQL Server

  2. 选择版本:

    • 驱动版本: 建议下载最新的稳定版,"8.x" 或 "12.x" 系列,新版本通常支持最新的 Java 和 SQL Server 特性,并修复了旧版本的 bug。
    • 操作系统: 选择你的操作系统(Windows, Linux, macOS)。
    • 文件类型: 下载 "ZIP" 或 "TAR.GZ" 压缩包即可。
  3. 找到 JAR 文件: 下载并解压后,你会看到一个文件夹,你需要关注的文件是 mssql-jdbc-<version>.jarmssql-jdbc-12.4.2.jre11.jar

    • 文件名中的 jre8, jre11, jre17 等后缀表示该 JAR 文件是为哪个 Java 运行时环境编译的。请选择与你项目使用的 JDK 版本相匹配的 JAR 文件,如果你使用 JDK 11,就选择 jre11 结尾的那个。

配置 JAR 文件到项目中

你需要将下载的 JAR 文件添加到你的 Java 项目的类路径(Classpath)中,根据你使用的开发工具,方法不同。

Java连接SQL Server需哪个jar包?-图2
(图片来源网络,侵删)

使用 IDE (如 IntelliJ IDEA 或 Eclipse)

这是最推荐、最简单的方式。

  1. 在项目中创建一个库:

    • IntelliJ IDEA:

      • 打开你的项目。
      • File -> Project Structure -> Modules
      • 在左侧选择你的模块,然后点击 Dependencies 选项卡。
      • 点击 号,选择 JARs or directories...
      • 浏览并选择你下载的 mssql-jdbc-<version>.jar 文件。
      • 点击 OK,IDE 会自动将其添加到类路径中。
    • Eclipse:

      Java连接SQL Server需哪个jar包?-图3
      (图片来源网络,侵删)
      • 右键点击你的项目 -> Build Path -> Configure Build Path...
      • Libraries 选项卡中,点击 Add External JARs...
      • 浏览并选择你下载的 mssql-jdbc-<version>.jar 文件。
      • 点击 Apply and Close
  2. Maven 项目 (强烈推荐): 如果你使用 Maven,无需手动下载 JAR 文件,只需在 pom.xml 文件中添加以下依赖即可,Maven 会自动帮你下载和管理。

    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <!-- 
          请根据你的JDK版本选择合适的版本。
          使用JDK 11, 17, 21等 LTS 版本,可以使用以下版本。
          最新版本请去 Maven 中央仓库查询: https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc
        -->
        <version>12.6.1.jre11</version> 
    </dependency>

使用命令行编译和运行

如果你不使用 IDE,需要通过 javacjava 命令手动编译和运行,则需要使用 -cp (classpath) 参数来指定 JAR 文件路径。

假设你的 JAR 文件在 C:\drivers\ 目录下,你的 Java 源文件是 src\com\example\TestDB.java

  1. 编译:

    # 注意路径分隔符,Windows用分号;,Linux/macOS用冒号:
    javac -cp "C:\drivers\mssql-jdbc-12.6.1.jre11.jar" src\com\example\TestDB.java
  2. 运行:

    java -cp ".;C:\drivers\mssql-jdbc-12.6.1.jre11.jar" com.example.TestDB
    • 表示包含当前目录,因为编译后的 .class 文件在那里。
    • 是 Windows 的类路径分隔符,Linux/macOS 上应使用 。

Java 连接代码示例

下面是一个完整的 Java 代码示例,展示了如何连接到 SQL Server 数据库、执行查询、处理结果集,并最后关闭所有资源。

前提条件

  • 你有一个正在运行的 SQL Server 实例。
  • 你知道数据库的连接信息:
    • 服务器地址: localhost168.1.100
    • 端口: 默认是 1433
    • 数据库名称: my_test_db
    • 用户名: sa
    • 密码: 你的密码。

示例代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class SqlServerConnectionExample {
    // --- 请在这里修改你的数据库连接信息 ---
    private static final String DB_URL = "jdbc:sqlserver://localhost:1433;databaseName=my_test_db;encrypt=false;trustServerCertificate=true;";
    private static final String USER = "sa";
    private static final String PASS = "your_password";
    // ------------------------------------
    public static void main(String[] args) {
        // 使用 try-with-resources 语句,确保 Connection, Statement, ResultSet 自动关闭
        try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT id, name, email FROM users")) {
            // 检查连接是否成功
            if (conn != null) {
                System.out.println("连接成功!");
            }
            // 遍历结果集
            System.out.println("ID\tName\tEmail");
            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 + "\t" + name + "\t" + email);
            }
        } catch (SQLException e) {
            // 处理 JDBC 错误
            System.err.println("数据库连接或查询失败!");
            e.printStackTrace();
        }
    }
}

代码解析

  1. 加载驱动 (可选): 在较新版本的 JDBC 驱动(4.0+)中,你不需要再手动调用 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"),驱动程序管理器会自动为你加载,如果你使用的是非常旧的版本(4.0 之前),才需要这一行。

  2. 连接字符串 (DB_URL):

    • jdbc:sqlserver://: 协议头,表示使用 SQL Server JDBC 驱动。
    • localhost:1433: 服务器地址和端口,如果你的 SQL Server 在远程,请替换为实际 IP 地址。
    • databaseName=my_test_db: 你要连接的数据库名称。
    • encrypt=false;trustServerCertificate=true;: 这是在本地开发或测试时非常重要的参数
      • encrypt=false: 禁用加密。
      • trustServerCertificate=true: 信任服务器证书,即使它是自签名的,这可以避免 SSL/TLS 握手时的证书验证错误。
    • 注意: 在生产环境中,你应该配置正确的 SSL 加密和受信任的证书,而不是简单地禁用它们。
  3. DriverManager.getConnection(): 此方法使用 URL、用户名和密码建立数据库连接,返回一个 Connection 对象。

  4. try-with-resources: 这是一个非常实用的 Java 7+ 特性,它确保了在 try 语句块结束时,Connection, Statement, 和 ResultSet 等资源会自动被关闭,即使发生异常也是如此,这可以有效防止资源泄漏。

  5. 执行查询:

    • conn.createStatement(): 创建一个 Statement 对象,用于执行 SQL 语句。
    • stmt.executeQuery("SELECT ..."): 执行一个查询语句,返回一个 ResultSet 对象,它包含了查询结果。
  6. 处理结果集:

    • rs.next(): 将光标移动到下一行,如果存在下一行,则返回 true,否则返回 `
分享:
扫描分享到社交APP
上一篇
下一篇