【发布时间】:2020-05-15 03:53:52
【问题描述】:
我已经构建了一个动态 Web 项目,该项目在 .jsp 文件中询问客户的基本信息。然后这些信息由 servlet 处理并传递给 DAO,以便我可以将数据存储在 mssql 中。当在 DAO 上调用 addHost() 方法时,我收到了 java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver 错误。
我认为我的驱动程序有问题,所以我尝试在同一个项目中运行代码,但就像使用 main(String[] args) 的常规 Java 应用程序一样。它运行良好,所以我无法理解为什么这段代码不能通过 Web 应用程序运行。
有人可以向我解释为什么我只有在通过 Web 应用程序运行该方法时才会收到此错误?
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();
}
}
【问题讨论】:
-
com.microsoft.sqlserver.jdbc.SQLServerDriver 是 somejar 的一部分。当部署的应用程序运行时,它必须在类路径中可用。请添加有关部署环境的更多详细信息。 (它是如何构建的,它是如何运行的)
-
你的
web/WEB-INF/lib中有sql驱动的jar文件吗?
标签: java sql-server mssql-jdbc