错误:线程中的异常" AWT-EventQueue-0" java.lang.ClassCastException:

时间:2014-07-03 15:31:59

标签: java jdbc mssql-jdbc

我的代码是:

try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
    "databaseName=Java-Test;user=sa;password=199088037635;";
    link = (Connection) DriverManager.getConnection(connectionUrl);

} catch (ClassNotFoundException e) {
    System.out.println("Class Error: "+ e.toString());
} catch (SQLException se) {
    System.out.println("Driver Error: " + se.toString());
}

我收到错误:

  

线程中的异常" AWT-EventQueue-0" java.lang.ClassCastException:com.microsoft.sqlserver.jdbc.SQLServerConnection无法强制转换为com.sun.corba.se.pept.transport.Connection       在SQL.createAndShowGUI(SQL.java:42)

其他项目中的类似代码正确运行。但是在这个项目中它并没有运行。

2 个答案:

答案 0 :(得分:2)

检查您的进口商品。当您键入类名时,IDE会检查它是否已在范围内,如果没有,它会为您提供可导入内容的建议。问题是,IDE不知道哪些建议更相关,因此它无法对它们进行排序,因此最有可能首先出现。然而,人们习惯于反思性地接受IDE的第一个建议,这可能会导致获得某些东西(具有相同的名称,但来自完全不同的包),这根本不是你想要的。

我猜IDE插入了一行像

import com.sun.corba.se.pept.transport.Connection;

应该在哪里

import java.sql.Connection;

这是com.microsoft.sqlserver.jdbc.SQLServerConnection实现的JDBC接口。

DriverManager.getConnection返回一个java.sql.Connection,通常该接口会公开你需要的所有功能,所以你不需要在这里进行强制转换。

答案 1 :(得分:0)

将此库包含在项目的构建路径中。

在Eclipse中,这是通过**右键单击项目>完成的。属性> Java构建路径>添加JAR ...