“ java.lang.ClassCastException:org.apache.derby.client.net.NetConnection无法转换为smartdatabase.Connection”有人知道为什么吗?

问题描述

我100%确定连接名称正确,“ smartdatabase”是该代码所在的包,“ SmartData”是我在NetBeans IDE 8.2中的嵌入式数据库(我相信它是Derby数据库)。

package smartdatabase;
import java.sql.*;
import org.apache.derby.jdbc.EmbeddedDriver;

public class Connection {

    private Connection conn = null;
    private Statement stmt = null;

    public Connection() {

    }

    public void getStudents() {
        try {
            Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
            conn = (Connection) 
DriverManager.getConnection("jdbc:derby://localhost:1527/SmartData;create=true;","root","The 
password");
        `    `String sql;
            sql = "SELECT Firstname,Surname FROM tblStudents";
            ResultS``et rs = stmt.executeQuery(sql);
            while (rs.next()) {
                String Firstname = rs.getString("FirstName");
                String Surname = rs.getString("Surname");
                System.out.println(Firstname + "    " + Surname);
            }
        } catch (sqlException se) {
            se.printstacktrace();
        } catch (`Exception e) {
            e.printstacktrace();
        }
    }

}

解决方法

您的Connection包中可能有一个名为smartdatabase的类。 使用此类而不是java.sql.Connection 默认情况下,编译器从同一程序包解析Connection

尝试重命名该类或使用完全限定的名称(java.sql.Connection)而不是仅使用Connection:

private java.sql.Connection conn = null;