java - 使用 Java 连接 SQL Server 2005 Express

标签 java sql sql-server eclipse jdbc

我的项目有问题。这让我发疯——也许你可以帮助我。 我有一台运行 SQL Server 2005 Express 的 PC,它运行良好。 在 Eclipse 中我测试了以下代码来查询数据库:

String user= "sa";
String pass= "root";
Statement smt;
ResultSet rs = null;
System.out.println("2");

try {
  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 2005 version
}catch (Exception e){}

try {
  System.out.println("3");
  Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=master",user,pass);
  smt = con.createStatement();
  smt.executeQuery("SELECT * from test");
  rs = smt.getResultSet();

  while (rs.next()) {
    printentry(rs);
  }

  con.close()
  System.out.println("5");
} catch ( SQLException excepcionSql) {
  JOptionPane.showMessageDialog( null, excepcionSql.getMessage(), "Error", JOptionPane.ERROR_MESSAGE );
}

它工作正常并运行查询。我从微软下载了驱动程序并将sqljdbc4.jar添加到类路径中。

真正必须访问数据库的项目是另一个版本的Eclipse(Eclipse SDK 3.2)。它运行一个需要查询数据库的 Web 服务。 我将相同的 jar 添加到类路径并执行相同的代码,即:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

抛出此异常:

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1438) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at com.banquito.Sucursales.HolaMundo.pruebaBD(HolaMundo.java:42) at com.banquito.Sucursales.SucursalesSOAPImpl.getConfigPaciente(SucursalesSOAPImpl.java:44) at com.banquito.Sucursales.SucursalesSOAPSkeleton.getConfigPaciente(SucursalesSOAPSkeleton.java:80) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Unknown Source)

Eclipse 似乎无法解析导出。有人可以帮我吗? 谢谢

最佳答案

如果您使用的是 eclipse,请单击“配置构建路径”,然后将此 jar 添加到应用程序中,然后重试

关于java - 使用 Java 连接 SQL Server 2005 Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5915011/

相关文章:

java - 哪些 Java IDE 可以很好地与现有的 GUI 配合使用并有助于转换?

java - 长字符串自动换行

java - return 在 boolean 方法中究竟做了什么?

Mysql Select 语句动态转换时间戳

mysql 使用 join 查询重复数据

sql - 查询根据其他字段用最大值填充Null字段

sql-server - FREETEXT 搜索 - 根据匹配程度对结果进行排序

python - 如何在sql select语句中使用python函数

java - 如何在不卡住我的应用程序的情况下运行循环?

mysql - MySQL 不支持哪些 SQL Server 查询语法?