1

我的代码是:

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 无法在 SQL.createAndShowGUI(SQL.java :42)

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

4

2 回答 2

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 并且通常该接口会公开您需要的所有功能,因此您不需要在这里进行强制转换。

于 2014-07-03T15:50:56.613 回答
0

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

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

于 2014-07-03T15:39:15.620 回答