2013-01-07 72 views
1

我想從使用JDBC的表中獲取所有列值。在Java中連接到數據庫的異常:JDBC

這是我在我的主程序中編寫的代碼。

Class.forName("com.mysql.jdbc.driver"); 
String url = "jdbc:jtds:sqlserver://test.com/abc_1_20121225;instance=abcd"; 
Connection conn = DriverManager.getConnection(url,"uname","pwd"); 
Statement stmt = conn.createStatement(); 
ResultSet rs; 

    rs = stmt.executeQuery("SELECT table_name, column_name, data_type, data_length FROM USER_TAB_COLUMNS WHERE table_name = 'MyTable'"); 
    while (rs.next()) { 
     String colName = rs.getString("column_name"); 
        System.out.println(colName); 
     } 
    conn.close(); 
} catch (Exception e) { 
    System.err.println("Got an exception! "); 
System.err.println(e.getMessage()); 

我在我的課程路徑中添加了jtds.jar。我收到此消息

Got an exception! 
com.mysql.jdbc.driver 

有人能告訴我問題的確切原因嗎?

編輯:

添加stactrace;

java.lang.ClassNotFoundException: com.mysql.jdbc.driver 
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 schwab.TestDB.main(TestDB.java:15) 
+4

而不是e.getMessage(),你可以嘗試與e.printStackTrace()並提供給我們stacktrace? –

+3

具有Driver類而非驅動程序類的MySQL jar。試試看Class.forName(「com.mysql.jdbc.Driver」);請給堆棧跟蹤進一步調查。 –

+0

另外什麼是確切的例外 - 因爲這給了更多的信息,只是有一個例外 – Mark

回答

3

你的錯裝驅動程序。

替換此:

Class.forName("com.mysql.jdbc.driver"); 

隨着

Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
+0

非常感謝。 – Patan

0

我的猜測是你沒有你的classpath上的MysQL驅動。但是,如果你提供完整的堆棧跟蹤,你應該能夠確認這一點。

但是,它看起來像你正在使用SQLServer數據庫,所以我不知道你爲什麼引用MYSQL驅動程序?

3

Class.forName("com.mysql.jdbc.driver");

- >如果你正在使用MySQL驅動程序,它是驅動程序類不是司機。

String url = "jdbc:jtds:sqlserver://test.com/abc_1_20121225;instance=abcd";

--->您的網址將指向SQL Server數據庫。

確定您正在使用哪個數據庫。如果您使用MySQL,請使用MySQL Connector jar和驅動程序類com.mysql.jdbc.Driver

如果您正在使用MS SQL Server,使用驅動程序類:net.sourceforge.jtds.jdbc.DriverjTDS Driver OR com.microsoft.sqlserver.jdbc.SQLServerDriver爲Microsoft SQL Server 2005 JDBC驅動程序

-1

下載sqljdbc4-2.0.jar,並與您的項目連接。它會解決你的問題。

+0

OP正在嘗試加載MySQL驅動程序,而URL是一個jTds URL。將官方SQL Server驅動程序添加到項目中並不會解決任何問題... –