gpt4 book ai didi

java - 为什么我的代码在我的 Web 应用程序中出现 java.lang.ClassNotFoundException : com. microsoft.sqlserver.jdbc.SQLServerDriver 错误?

转载 作者:行者123 更新时间:2023-12-01 16:44:00 27 4
gpt4 key购买 nike

我构建了一个动态 Web 项目,该项目要求在 .jsp 文件中提供客户的基本信息。然后,该信息由 servlet 处理并传递给 DAO,以便我可以将数据存储在 mssql 中。当方法addHost()在 DAO 上调用,我得到 java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver错误。

我认为我的驱动程序有问题,所以我尝试在同一个项目中运行代码,但就像使用 main(String[] args) 的常规 java 应用程序一样。它运行得很好,所以我无法理解为什么这段代码不能通过网络应用程序运行。

有人可以向我解释为什么只有当我通过网络应用程序运行该方法时才会出现此错误吗?

public void addHost(Host userHost) throws ClassNotFoundException, SQLException {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:1433;databaseName=Hosts;integratedSecurity=true;";
Connection con = DriverManager.getConnection(url);

try {
String query = "insert into HostsInfo values(?,?,?,?,?);";
PreparedStatement pstmt = con.prepareStatement(query);
pstmt.setString(1, userHost.getName());
pstmt.setString(2, userHost.getEmail());
pstmt.setString(3, userHost.getPword());
pstmt.setString(4, userHost.getCity());
pstmt.setInt(5, userHost.getGuestCount());
pstmt.executeUpdate();
} catch (Exception e) {
System.out.println(e);
} finally {
con.close();
}
}

最佳答案

当您在应用程序服务器外部使用 JDBC 时,DriverManager 类管理连接的建立。向 DriverManager 指定要尝试与其建立连接的 JDBC 驱动程序。最简单的方法是在实现 java.sql.Driver 接口(interface)的类上使用 Class.forName()。对于 MySQL Connector,此类的名称是 <>。通过此方法,您可以使用外部配置文件来提供连接到数据库时要使用的驱动程序类名称和驱动程序参数。

你可以这样做:

public class LoadDriver {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception ex) {
// handle the error
}
}
}

驱动程序注册到DriverManager后,您可以通过调用DriverManager.getConnection()获取连接到特定数据库的Connection实例。

关于java - 为什么我的代码在我的 Web 应用程序中出现 java.lang.ClassNotFoundException : com. microsoft.sqlserver.jdbc.SQLServerDriver 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61811458/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com