2009-02-12 77 views
13

我的配置:如何在MS SQL Server 2008 Express中使用MS JDBC驅動程序?

  • 的Windows XP SP3
  • JDBC 2005
  • MS SQL Server 2008 Express的,通過TCP/IP暴露在端口1433
  • 在類路徑sqljdbc.jar

我試過了:

try { 
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); 
    con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433/SQLEXPRESS2008;databaseName=Test;selectMethod=cursor", "sa", ""); 
} 
catch (Exception e) { 
    e.printStackTrace(); 
} 

但它總是會拋出一個異常:

java.sql.SQLException: No suitable driver 

我也試過以下網址:

localhost:1433/SQLEXPRESS2008 

localhost/SQLEXPRESS2008 

localhost 

相同的結果。 有什麼幫助嗎?

回答

27

您的網址錯誤。

我不知道你的意思是「JDBC 2005」。當我查看微軟網站時,我發現了一些名爲Microsoft SQL Server JDBC Driver 2.0的東西。 你會想要那一個 - 它包括許多修復和一些性能改進。 [編輯:你可能會想要最新的驅動程序。截至2012年3月,微軟最新的JDBC驅動程序是JDBC 4.0]

查看發行說明。對於此驅動程序,您想要:

URL: jdbc:sqlserver://server:port;DatabaseName=dbname 
Class name: com.microsoft.sqlserver.jdbc.SQLServerDriver 

看起來您的類名正確,但URL錯了。

Microsoft在JDBC驅動程序的初始版本發佈後更改了類名稱和URL。您使用的URL與Microsoft的原始JDBC驅動程序一起使用,一個MS稱爲「SQL Server 2000版本」。但該驅動程序使用不同的類名。

對於所有後續的驅動程序,URL更改爲我在此處的表單。

這是JDBC驅動程序的發行說明。

-2

您可以嘗試以下操作。作品在我的情況罰款:

  1. 下載當前jTDS JDBC Driver
  2. 看跌JTDS-x.x.x.jar classpath中。
  3. 將ntlmauth.dll複製到windows/system32。選擇基於你的硬件的x86 x86,x64 ...
  4. 連接url是:'jdbc:jtds:sqlserver:// localhost:1433/YourDB',你不必提供用戶名和密碼。

希望有所幫助。

+2

他們詢問如何使用MS驅動程序,而不是JTDS驅動程序。對不起(-1) – javamonkey79 2011-01-12 23:24:20

+0

這個問題不明白,他必須使用MS驅動程序。也許提問者不知道jTDS。一般來說,jTDS已知可以更好地工作,所以也許不是一個直接的解決方案,而是一個很好的選擇。 – Adrian 2016-10-07 17:32:48

+0

謝謝你降低7歲的答案。你們是冠軍。 – raupach 2016-10-11 07:45:15

3

如果您databaseName值是正確的,然後使用此:DriverManger.getconnection("jdbc:sqlserver://ServerIp:1433;user=myuser;password=mypassword;databaseName=databaseName;")

0

最新的JDBC連接MSSQL駕駛者可以在 JDBC 4.0

中發現的類文件應該在classpath中。 >

右鍵點擊項目名稱 - - >屬性 - > Java構建路徑 - > 庫 - >添加外部JAR

如果使用的是Eclipse您可以方便地通過執行以下操作執行相同

另外,作爲已經被@Cheeso指出了正確的方式來訪問爲jdbc:SQLSERVER://服務器:端口,數據庫名= DBNAME

同時請找在訪問MSSQL數據庫的樣本類(2008我的情況)。

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 

public class ConnectMSSQLServer 
{ 
    public void dbConnect(String db_connect_string, 
      String db_userid, 
      String db_password) 
    { 
     try { 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     Connection conn = DriverManager.getConnection(db_connect_string, 
        db_userid, db_password); 
     System.out.println("connected"); 
     Statement statement = conn.createStatement(); 
     String queryString = "select * from SampleTable"; 
     ResultSet rs = statement.executeQuery(queryString); 
     while (rs.next()) { 
      System.out.println(rs.getString(1)); 
     } 
     conn.close(); 
     } catch (Exception e) { 
     e.printStackTrace(); 
     } 
    } 

    public static void main(String[] args) 
    { 
     ConnectMSSQLServer connServer = new ConnectMSSQLServer(); 
     connServer.dbConnect("jdbc:sqlserver://xx.xx.xx.xxxx:1433;databaseName=MyDBName", "DB_USER","DB_PASSWORD"); 
    } 
} 

希望這會有所幫助。

3
  1. 從微軟的網站
  2. 下載最新的JDBC驅動程序(即sqljdbc4.0)編寫程序如下:

    import java.sql.*; 
    class testmssql 
    { 
        public static void main(String args[]) throws Exception 
        { 
         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
         Connection  con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; 
           databaseName=chapter16","sa","123");//repalce your databse name and user name 
          Statement st=con.createStatement(); 
         ResultSet rs=st.executeQuery("Select * from login");//replace your table name 
         while(rs.next()) 
         { 
          String s1=rs.getString(1); 
          String s2=rs.getString(2); 
          System.out.println("UserID:"+s1+"Password:"+s2); 
         } 
         con.close(); 
        } 
    } 
    
  3. 編譯程序和設置的罐子類路徑即:set classpath=C:\jdbc\sqljdbc4.jar;.;如果您在下載和解壓後已將jar文件保存在C:\jdbc中。

  4. 運行該程序並確保您的TCP/IP服務已啓用。如果未啓用,那麼請按照下列步驟操作:
    1. 開始 - >所有程序 - > Microsoft SQL Server的2008 - >配置工具 - > SQL Server配置管理器
    2. 展開SQL Server網絡配置:選擇你的MS SQL Server實例即MSQSLSERVER並啓用TCP/IP。
    3. 重新啓動您的MS SQL Server實例。這可以在你的MS SQL Server實例
0

命名實例的根級別也做了從Microsoft SQL Server Management Studio中的右鍵菜單?

網址爲:jdbc:SQLSERVER:// [服務器] [\實例] [:端口號] [;屬性=值]

注:反斜槓

相關問題