Java 连接对象的类强制转换异常

Java 连接对象的类强制转换异常,java,mysql,jdbc,Java,Mysql,Jdbc,我正在尝试为MySQL建立连接,但遇到一个类强制转换异常。这是代码。密码、用户名等已更改,但这不是问题所在。主要的问题是我在尝试执行时遇到的类强制转换异常 Connection c = (Connection) DriverManager.getConnection(url,un,pw); 代码 问题就在这里。类歧义问题。重命名您的类,并修复导入以包括java.sql.Connection.DriverManager.getConnection(url、un、pw)返回一个java.sql.C

我正在尝试为MySQL建立连接,但遇到一个类强制转换异常。这是代码。密码、用户名等已更改,但这不是问题所在。主要的问题是我在尝试执行时遇到的类强制转换异常

Connection c = (Connection) DriverManager.getConnection(url,un,pw);
代码


问题就在这里。类歧义问题。重命名您的类,并修复导入以包括
java.sql.Connection.
DriverManager.getConnection(url、un、pw)
返回一个
java.sql.Connection
。 所以你必须改成

java.sql.Connection c = DriverManager.getConnection(url,un,pw);

返回值i不是连接类的实例。

DriverManager.getConnection()返回的连接是
java.sql.Connection
的实例,但是请注意,您定义了一个单独的连接类,认为它是唯一的。事实证明,它已经是由
java.sql.Connection
定义的标准类

如果使用导入进行连接,则具有相同名称的类之间将存在冲突。将类重命名为MyConnection,然后导入java.sql.Connection,这样代码就可以工作了。

import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;

 public class MyConnection {
    public static void main(String agrs[]){
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://hostname/dbname";
            String un = "username";
            String pw = "password";
            Connection c = (Connection)   DriverManager.getConnection(url,un,pw);
         } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

您可以显示您试图转换到的连接的导入吗?我没有导入。这是我为测试数据库而编写的代码的完整版本。请将您的类重命名为“Connection1”或其他名称,然后导入
java.sql.Connection
您应该使用的连接是“java.sql.Connection”。在您的代码中,sql.Connection被强制转换到导致问题的类“Connection”。只需重命名类文件并使用上面的导入即可。无需重命名类即可使用。向上投票。
java.sql.Exception
?那是什么?这跟它有什么关系?那个“定义”是什么?@EJP:Typo类可能可以描述它拼写错误。没有这样的东西,因此它不能“定义”任何东西。@EJP:我道歉,我匆忙回答。谢谢你告诉我
java.sql.Connection c = DriverManager.getConnection(url,un,pw);
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;

 public class MyConnection {
    public static void main(String agrs[]){
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://hostname/dbname";
            String un = "username";
            String pw = "password";
            Connection c = (Connection)   DriverManager.getConnection(url,un,pw);
         } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}