java - 找不到 com.microsoft.sqlserver.jdbc.SQLServerDriver 错误

标签 java sql-server eclipse jdbc

我正在尝试从 Java 连接到我的 SQL Server 2008 数据库,但我遇到了同样的问题 thread .

String userName = "xxxx";
String password = "xxxx";
String url = "jdbc:sqlserver:xxx.xxx.xxx.xxx;databaseName=asdfzxcvqwer;integratedSecurity=true";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
connection = DriverManager.getConnection(url, userName, password);

每当我尝试从 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 加载驱动程序时,我总是收到 ClassNotFoundException >

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1713)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at repositories.RepositoryBase.<init>(RepositoryBase.java:22)
    at repositories.ProductsRepository.<init>(ProductsRepository.java:13)
    at api.Products.init(Products.java:31)
    at javax.servlet.GenericServlet.init(GenericServlet.java:160)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:865)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

我已确保将必要的 jdbc 和 jtds 驱动程序添加到库中,并且还设置了 CLASSPATH。老实说,我不确定这里出了什么问题。 enter image description here

编辑:根据建议,我尝试下载这个 jdbc jar并将它放在我的 WEB-INF/lib 中,然后将我的 CLASSPATH 变量设置到该位置。尽管如此,同样的问题仍在发生。 enter image description here

Edit2:没关系,完全重新安装 Eclipse 就可以了。这真令人沮丧……

最佳答案

您不需要在您的类路径中同时使用 jTDS 和 JDBC。任何一个都是必需的。这里你只需要sqljdbc.jar

此外,我建议将 sqljdbc.jar 放在项目的 /WEB-INF/lib 目录的物理位置,而不是通过 IDE 将其添加到类路径中.然后 Tomcat 负责其余的工作。并尝试重新启动 Tomcat。

您可以从以下地址下载 Jar:www.java2s.com/Code/JarDownload/sqlserverjdbc/sqlserverjdbc.jar.zip

编辑:

当您在连接时提供用户名和密码时,

您只需要 jdbc:sqlserver://localhost:1433;databaseName=test,跳过 integratedSecurity 属性。

关于java - 找不到 com.microsoft.sqlserver.jdbc.SQLServerDriver 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15241960/

相关文章:

java - 为 GAE 设置 JRebel

sql - 在ms-sql中设置纪元时间戳

eclipse - 来自 WTP 的 Tomcat 忽略分配的端口

java - 如何在 jar 文件中包含 Maven 依赖项?

java - 使用 Quartz 跨多个无状态应用服务器调度单个作业

java - Java 中类似 Lisp 的字符串匹配

java - 创建 Maven 原型(prototype)

sql - 如何清除 Sql Server 2005 中的连接

c# - SQL Server 中的 varbinary 类型如何在 C# 中的函数中使用

java - "Main type not specified"与 GWT 和 Eclipse Juno 4.2