2014-03-06 64 views
0

我安裝了SQL Server,現在我想用它來進行JDBC連接。我已通過管理器啓用TCP/IP連接,並通過對象資源管理器屬性啓用混合模式身份驗證。 現在我的連接聲明說用戶gagan(JDBC,MS SQL Server)登錄失敗

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // no error 
Connection c = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=student;user=gagan;password=35795200"); 

其中GAGAN是我的用戶名和35795200是我的Windows登錄密碼。我仍然得到登錄失敗的異常。 我真的厭倦了這一點。請幫忙 !

+0

你確定localhost:1433是正確的嗎? – user1254579

+0

是的。有關端口沒有錯誤沒有 – Gagan93

+0

掛在...爲什麼你使用你的Windows登錄密碼登錄到數據庫?除非它們都相同。我希望有一個現有的數據庫用戶「gagan」。 – anonymous

回答

0

您的網址包含用戶名和密碼。嘗試調用getConnection(URL,用戶名,密碼)方法。 URL格式爲jdbc:subprotocol:subname

+0

同一個錯誤@anonymous 嘗試調用 DriverManager.getConnection(「jdbc:sqlserver:// localhost:1433; databaseName = student」,「gagan」,「35759200」); 也 – Gagan93

+0

你能發佈實際的錯誤信息嗎? – anonymous

+0

例外時間太長,無法發佈爲評論,所以我在此發佈了屏幕截圖: http://i62.tinypic.com/29akn8.jpg – Gagan93

0

它可能是database=而不是databasename。如果這不起作用,請檢查您是否能夠使用這些憑據登錄。取而代之,連接字符串沒有任何問題。指定您正在使用的MSSQL版本。

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // no error 
Connection c = DriverManager.getConnection("jdbc:sqlserver://WAHEGURU_HP;database=student;user=WAHEGURU\\gagan;password=35795200"); 
+0

的屏幕截圖中據此,http://stackoverflow.com/questions/2606653/connecting-to-sql-server-2008-from-java「databaseName 「 是正確的。 – anonymous

+0

我正在使用2008版的SQL。我試圖刪除數據庫名稱,這不是一個問題,因爲錯誤仍然存​​在。我認爲這是錯誤的,是用戶名和/或密碼 – Gagan93

+0

我已經更新了我的答案中的connectionstring。複製並嘗試使用。它應該工作。 –

0
  1. 數據庫名稱是連接字符串正確的參數
  2. 請與DBA確認是否使用的是正確的端口 「://本地主機:」; 1433是默認端口,但某些時候dba也使用不同的端口
  3. 通過使用ssms連接到sql server來檢查您的登錄密碼實際是否正確。

連接字符串的例子:

/* ** * ** * ** * ** * ** * ** * ** * ** * ** * ****/ 連接到本地計算機上的默認數據庫通過使用集成的身份驗證:

JDBC:SQLSERVER://本地主機; integratedSecurity = TRUE;

連接到一個遠程服務器上的指定的數據庫:

JDBC:SQLSERVER://本地主機;的databaseName = AdventureWorks的; integratedSecurity = TRUE;

連接的默認端口到遠程服務器上:

JDBC:SQLSERVER://本地主機:1433;的databaseName = AdventureWorks的; integratedSecurity = TRUE;

連接通過指定的定製應用程序名:

JDBC:SQLSERVER://本地主機;的databaseName = AdventureWorks的; integratedSecurity = TRUE;的applicationName = MyApp的;

/* ** * ** * ** * ** * ** * ** * ** * ** * * * * ****/

請粘貼錯誤的屏幕截圖,這將有助於解決這個問題