2013-04-02 42 views
1

我試試就知道了,如果我可以使用這些代碼連接的Java到SQL Server:TCP/IP(Java應用程序到SQL Server)

package pkgtry; 
import java.sql.*; 
public class NewMain { 

    public static void main(String[] args) { 
    String connectionUrl="jdbc:sqlserver://(local):1433;DatabaseName=OJT;user=sa;password=''"; 


      Connection con = null; 
      Statement stmt = null; 
      ResultSet rs = null; 

       try { 

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
         con = DriverManager.getConnection(connectionUrl); 


         String SQL = ""; 
         stmt = con.createStatement(); 
         rs = stmt.executeQuery(SQL); 


         while (rs.next()) { 

         } 
       } 


      catch (Exception e) { 
       e.printStackTrace(); 
      } 

      finally { 
       if (rs != null) try { rs.close(); } catch(Exception e) {} 
        if (stmt != null) try { stmt.close(); } catch(Exception e) {} 
        if (con != null) try { con.close(); } catch(Exception e) {} 
      } 
    } 
} 

但在我結束它顯示一個錯誤,並說:

com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host (local), port 1433 has failed. Error: "null. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.".

這是什麼意思?如何解決它?

+0

檢查這一點 - http://stackoverflow.com/questions/11820799/com-microsoft-sqlserver-jdbc-sqlserverexception-the-tcp-ip-connection-to-the-ho – Ankit

+0

由於某種原因,我可以打開我的SQL Server配置管理器,它彈出一個錯誤,並說:'無法連接到WMI提供程序。您沒有權限或服務器無法訪問。請注意,您可以使用SQL Server配置管理器管理SQL Server 2005和更高版本的服務器。無效的類[0x80041010]'如何解決它? –

+0

嘗試「以管理員身份運行」 – Ankit

回答

1

這意味着JDBC無法連接到數據庫服務器。它找不到主機(local),你的意思是把localhost而不是(local)

String connectionUrl="jdbc:sqlserver://(local):1433;DatabaseName=OJT;user=sa;password=''"; 
+0

好吧我已經嘗試將其更改爲localhost,但是它顯示了我不同的錯誤,'com.microsoft.sqlserver.jdbc.SQLServerException:用戶'sa'登錄失敗。' 如何解決這個問題? –

+0

您需要提供正確的登錄憑證/與您的數據庫管理員聯繫以獲取正確的登錄憑證。請閱讀MS SQL手冊 – gerrytan

+0

對不起,如果我在這裏聽起來像一個新手,我真的不知道如何做這個,因爲我曾經在VB中做一個程序,這就像我再次從頭開始。這個java的東西與vb非常不同。你能給我一些鏈接來研究如何將我的程序連接到MS SQL嗎? –

0

執行以下操作:

1)確保服務器在您的計算機上運行。也就是說,它監聽傳入的連接請求。

要做到上述,使用IDE(我喜歡netbeans ....它非常容易使用),並嘗試創建一個到數據庫的連接。您將不得不輸入用戶名,密碼,數據庫名稱,端口號。在其上運行服務器等。

如果您連接成功,您的服務器運行良好。

如果不是,請確保您使用的是正確的驅動程序,您提到了正確的端口號,正確的數據庫名稱等等。

2)複製生成的連接字符串並將其替換爲連接URL。我覺得你應該在你的連接字符串中使用「localhost」而不是「(local)」。但可以肯定的是,只需複製IDE生成的連接字符串即可。

3)嘗試再次連接,看看它是否工作。它主要應該。

+0

'com.microsoft.sqlserver.jdbc.SQLServerException:用戶'sa'登錄失敗。'' ,這是錯誤發生如何解決它?你對'localhost'而不是'local'有點正確 –

+0

你有一個用戶SA嗎?該用戶是否具有連接到數據庫的權限?如果是,你是否提供了正確的密碼? 試試這個: 1)連接到一個預先存在的數據庫..例如。測試。 2)使用憑證用戶名:root密碼:空白(不要輸入任何內容) 3)對於1和2,您需要找出爲您的服務器及其登錄憑證創建的測試數據庫。 Google這個。它可能因服務器而異 – Nikhil

0
<% 
    String connectionUrl="jdbc:sqlserver://localhost:1433;DatabaseName=databaseNames;"; 
    try { 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
    } catch (ClassNotFoundException e) { 
     out.println("<p>Driver not found:" + e + e.getMessage() + "</p>"); 
    } 

    try { 
     Connection conn = DriverManager.getConnection (connectionUrl, "sa", "yourPassword"); 
相關問題