我正在尝试为MySQL建立连接,但我得到了一个类强制转换异常。这是代码。密码,用户名等已更改,但这不是问题。主要问题是我尝试
时得到的类强制转换异常Connection c = (Connection) DriverManager.getConnection(url,un,pw);
CODE
import java.sql.DriverManager;
import java.sql.SQLException;
public class Connection {
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();
}
}
}
答案 0 :(得分:3)
public class Connection
问题就在这里。类歧义问题。重命名您的类,并修复您的导入以包含java.sql.Connection.
答案 1 :(得分:2)
DriverManager.getConnection(url,un,pw);
返回java.sql.Connection
。
所以你必须改为
java.sql.Connection c = DriverManager.getConnection(url,un,pw);
返回值我不是Connection类的实例。
答案 2 :(得分:0)
DriverManager.getConnection()
返回的连接是java.sql.Connection
的实例,但是看到您已经定义了一个单独的Connection类,认为它是唯一的。事实证明,它已经是由java.sql.Connection
定义的标准类。
如果对Connection使用导入,则具有相同名称的类之间将存在冲突。将您的班级重命名为MyConnection并import 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();
}
}
}