java - 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();
}
}
}
我无法进一步编译代码,因为我不知道驱动程序名称。
解决方案
如文件所述,类名是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 不完整,因为它不包含数据库名称。
推荐阅读
- javascript - 用 Puppeteer 覆盖 showOpenFilePicker
- sql - 仅从“已添加”/“已删除”列中查找活动项目
- c# - 使用 .BeginInvoke 启动的委托不断抛出 ThreadAbortExceptions?
- .net - 我怎样才能可靠地编辑
.Net SDK 样式 .csproj 文件中的元素? - asp.net - Asp.net webfroms Google 登录不起作用
- python - 如果参数的名称是 python 关键字,是否可以使用 fastapi 获取查询参数?
- excel - 输入/更改数据时生成日期/时间戳
- python - 如何使用 python 创建和编写递增的 .png 文件?
- unit-testing - 如何处理 Spock 中“不应该发生”的场景?
- angular - 错误:node_modules/@angular/platform-browser/platform-browser.d.ts:44:22 - 错误 NG6002