首页 > 解决方案 > Java 中 SQL Server 的驱动程序名称

问题描述

我正在尝试将 SQL Server 与我的 Java 应用程序连接,但我不知道 Class.forName(driverName); 中提供的驱动程序类名称;

我正在使用 Eclipse,我已经在我的项目中导入了 JAR 文件并将其添加到构建路径中。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class Demo {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement stmt = null;
        String query = "CREATE TABLE student("
                + "id       INT     PRIMARY KEY,"
                + " name    VARCHAR(20)"
                + ");";

        try {
            Class.forName("WHAT SHOULD I WRITE HERE ?");
            conn = DriverManager.getConnection("jdbc:sqlserver://lakshya:1433");
            System.out.println("Conenction established.");

            stmt = conn.prepareStatement(query);
            stmt.executeQuery();

            System.out.println("student table created..");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

我无法进一步编译代码,因为我不知道驱动程序名称。

标签: javasql-serverjdbc

解决方案


文件所述,类名是com.microsoft.sqlserver.jdbc.SQLServerDriver

但是,对于自 2006 年以来生产的任何 JDBC 驱动程序(对于 JDBC 4 或更高版本),您不需要Class.forName在这样的应用程序中加载驱动程序。如果驱动程序位于初始类路径上,它将自动加载。

只有在更复杂的类加载情况下(例如 Web 应用程序),您可能需要显式加载,但在这些类型的应用程序中,您通常会配置 aDataSource而不是使用DriverManager.

简而言之,只要在运行应用程序时类路径上有 Microsoft SQL Server JDBC jar,您应该能够删除该行Class.forName("WHAT SHOULD I WRITE HERE ?");并且您的应用程序将运行。

还要确保查阅Microsoft SQL Server JDBC 文档的其余部分,因为您当前的 JDBC url 不完整,因为它不包含数据库名称。


推荐阅读