我的代码是:
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)
其他项目中的类似代码正确运行。但是在这个项目中它并没有运行。
答案 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 ...