2013-09-27 55 views
8
package sqlselection; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.Statement; 

public class Sqlselection 
    { 
     public static void main(String[] args) 
     { 
      try 
      { 
       Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 

       String userName = "sa"; 
       String password = "password"; 
       String url = "jdbc:microsoft:sqlserver://localhost:1433"+";databaseName=AdventureWorks2008R2"; 
       Connection con = DriverManager.getConnection(url, userName, password); 
       Statement s1 = con.createStatement(); 
       ResultSet rs = s1.executeQuery("SELECT TOP 1 * FROM HumanResources.Employee"); 
       String[] result = new String[20]; 
       if(rs!=null){ 
        while (rs.next()){ 
         for(int i = 0; i <result.length ;i++) 
         { 
          for(int j = 0; j <result.length;j++) 
          { 
           result[j]=rs.getString(i); 
          System.out.println(result[j]); 
         } 
         } 
        } 
       } 

       //String result = new result[20]; 

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


} 

    enter code here 

上面是我的示例程序,用於連接到Sql服務器以從eclipse運行示例選擇查詢。Java程序連接到Sql Server並運行示例查詢從Eclipse

我收到下面的錯誤。

java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    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) 
    at java.lang.Class.forName(Unknown Source) 
    at sqlselection.Sqlselection.main(Sqlselection.java:13) 

我已將sqljdbc.jar,sqljdbc4.jar添加到庫中。 幫助解決這個

+1

添加jar文件到類路徑 –

回答

6

問題是用Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");這一行。類合格的名字是錯的

這是sqlserver.jdbcjdbc.sqlserver

5

你忘了添加sqlserver.jar在Eclipse外部庫 跟隨過程中添加jar文件

  1. 右鍵單擊您的項目。
  2. 點擊構建路徑
  3. 單擊配置bulid路徑
  4. 單擊Add External罐子,然後給罐子的路徑
1

添加sqlserver.jar 這裏是link

,顧名思義ClassNotFoundException在Java是java.lang.Exception的子類,並且當Java虛擬機嘗試加載特定類和在classpath中找不到請求的類。

有關此異常的另一個重要的一點是,這是一個檢查異常,你需要同時使用這可以通過使用try-catch塊或使用拋出可能拋出ClassNotFoundException在Java方法,明確規定:異常處理條款。

Oracle docs

public class ClassNotFoundException 
extends ReflectiveOperationException 

當應用程序試圖使用通過字符串名加載類拋出該異常:

  • Class類中的forName方法。
  • 類ClassLoader中的findSystemClass方法。
  • 類ClassLoader中的loadClass方法。

但可以找到具有指定名稱的類的定義。

1

link的驅動程序爲sqlserver,下載並將其添加到您的eclipse構建路徑。

1

右鍵單擊您的項目--->構建路徑---->配置構建路徑---->庫選項卡--->添加外部jar --->(導航到您保存的位置sql driver jar)---> ok

1

下載Microsoft JDBC驅動程序4.0支持:

SQL Server versions: 2005, 2008, 2008 R2, and 2012. 
    JDK version: 5.0 and 6.0. 

運行下載的程序sqljdbc __。exe。它會將文件解壓縮到指定的目錄(默認爲SQL Server的Microsoft JDBC Driver 4.0)。您將找到兩個jar文件sqljdbc.jar(用於JDBC 3.0)和sqljdbc4.jar(用於JDBC 4.0),以及一些.dll文件和HTML幫助文件。

如果您使用JDK 4.0或更高版本,如果您使用的是JDK 4.0或sqljdbc4.1.jar文件,請將sqljdbc4.jar文件放在應用程序的類路徑下。

-2

只是改變這樣的查詢:

SELECT TOP 1 * FROM [HumanResources].[Employee] 

其中Employee是你的表名和HumanResources是你的架構名稱,如果我沒看錯的。

希望你的問題得到解決。 :)

+0

我敢肯定,這不會修復一個jdbc驅動程序ClassNotFoundException – beresfordt