1

我正在尝试使用 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

4 回答 4

3

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

--> 如果您使用的是 mysql 驱动程序,则它是驱动程序类而不是驱动程序。

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

---> 您的 url 将指向 SQL Server 数据库。

确保您使用的是哪个数据库。如果您使用的是 MySQL,请使用 MySQL 连接器 jar 和驱动程序类com.mysql.jdbc.Driver

如果您使用的是 MS Sql 服务器,请使用 Driver Class : net.sourceforge.jtds.jdbc.Driverfor jTDS DriverOR com.microsoft.sqlserver.jdbc.SQLServerDriverfor Microsoft SQL Server 2005 JDBC Driver

于 2013-01-07T09:41:07.330 回答
3

您正在加载错误的驱动程序。

替换这个:

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

Class.forName("net.sourceforge.jtds.jdbc.Driver");
于 2013-01-07T09:41:26.897 回答
0

我的猜测是您的类路径中没有 MySQL 驱动程序。但是,如果您提供完整的堆栈跟踪,您应该能够确认这一点。

但是,看起来您使用的是 SQLServer 数据库,所以我不确定您为什么要引用 MYSQL 驱动程序?

于 2013-01-07T09:39:42.417 回答
-1

下载sqljdbc4-2.0.jar并附在您的项目中。它会解决你的问题。

于 2013-01-07T09:48:26.370 回答