2
我有這樣的代碼:的Java連接到SQL Server
try
{
Class.forName("net.sourceforge.jtds.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:jtds:sqlserver://myMachine:1433/myDB;instance=sql2008;user=myUserName;password=myPassword;"
);
System.out.println("connected");
}
catch (Exception e)
{
e.printStackTrace();
}
這是例外,我得到:
Unable to get information from SQL Server: myMachine.
at net.sourceforge.jtds.jdbc.MSSqlServerInfo.<init>(MSSqlServerInfo.java:97)
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:276)
at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at Library.MusicItem.Save(MusicItem.java:22)
at AddMusicForm.jButton1ActionPerformed(AddMusicForm.java:86)
at AddMusicForm.access$000(AddMusicForm.java:17)
at AddMusicForm$1.actionPerformed(AddMusicForm.java:45)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6289)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
在SQL配置管理器中我已經設置TCP/IP,命名管道,共享內存並將VIA設置爲啓用。
我已驗證提供的用戶名和密碼是否正確。端口號也是正確的。
爲什麼我得到這個錯誤以及如何解決這個問題?
PS:我正在使用sql server 2008 express
數據庫是否在1433端口上運行?如果你進入命令行,如果你使用'ping myMachine',你會得到什麼(它是否解析爲IP?也就是說,myMachine是否解析爲可以從運行測試的地方訪問的IP地址?如果你從命令行執行'netstat -an',你會看到'myMachine:1433'的TCP或UDP條目嗎?也就是說,SqlServer綁定到該主機名和端口(而不是本地主機或127.0。 0.1)?如果確實在運行,你可以在哪裏找到它,你可以用SqlServer Config Manager連接那個用戶名和pwd嗎? – 2011-04-03 16:55:43
如果我做了netstat -an,我沒有看到任何端口號爲1433的東西。當我ping我的機器我得到這個:'回覆從fe80 :: 807e:73b6:47fb:9348%11:time <1ms'。我可以使用配置管理器的用戶名登錄 – Martijn 2011-04-03 17:02:47
@Martjin,你從'ping myMachine '? – 2011-04-03 17:24:16