我刚从这里为Sql Server安装了JDBC驱动程序(http://www.microsoft.com/en-us/download/details.aspx?id=11774),我测试了这个示例代码来测试连接:
http://msdn.microsoft.com/en-us/library/aa342339.aspx
我得到的错误似乎符合要求:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
java.lang.ClassNotFoundException:
com.microsoft.sqlserver.jdbc.SQLServerDriver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
两个注释:
附带问题:
答案 0 :(得分:1)
这究竟是什么意思:localhost:1433
localhost是指你的机器。 1433是默认端口号,其中SQL Server公开TCP / IP接口以供外部客户端与之交互。
正如guido所提到的,你应该将sqljdbc.jar添加到你的类路径中。如果你正在使用eclipse,你可以通过右键单击项目来做到这一点 - >构建路径 - >添加外部档案 - >从您下载的目录中选择sqljdbc.jar。
您可以在此处查看我对类似问题的回复之一:Error:The TCP/IP connection to the host has failed. java.net.ConnectException: Connection refused: connect
答案 1 :(得分:1)
看起来JDBC驱动程序不在运行的应用程序的类路径中。也许只使用JDK和JRE命令行工具(javac和java)来尝试你的样本,而不是在IDE中进行。
如果删除try / catch,不确定为什么不会收到错误消息。应该报告未捕获的异常。如果从命令行而不是从Eclipse运行程序,您将看到报告的未捕获异常。
localhost:1433是JDBC URL的一部分。 localhost表示数据库与正在运行的应用程序位于同一台计算机上。端口1433是默认的SQL Server TCP端口。
不确定Eclipse问题。我主要使用Netbeans。
答案 2 :(得分:1)
两个说明: 错误说它找不到驱动程序(jar),请参阅“guido”评论
附带问题:
localhost - 是本地计算机的网络名称,1433 - 是SQL Server等待连接的端口号
你的catch条款中有什么? e.PrintStackTrace();
也应显示行号
答案 3 :(得分:1)
主要问题:
您是否将sqljdbc4.jar文件添加到类路径中?如果没有,java不知道在哪里找到类。
本地主机
由您的网络适配器解析为您自己的IP。冒号(:)后面的数字是端口号。在计算机(或任何其他网络设备)上,可以有多个应用程序通过网络发送和接收数据。其应用程序侦听特定端口的数据。而SQL Server的标准端口是1443
问题: 使用
尝试{ 可以抛出异常的代码 } catch(HandledException e){ e.printStacktrace(); }
在控制台上打印有关例外的信息。