![](/img/trans.png)
[英]com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server
[英]Could not create JDBC connection to MySQL database server
问题是我无法使用 Android Studio 连接到我的 MySQL 数据库。 我试过 Netbeans,效果很好。 它不断告诉我它无法创建与数据库服务器的连接,但凭据是正确的。
我正在使用的版本:
Android 工作室:4.1.2
Android API:16 4.1(果冻豆)
MySQL 服务器:8.0.18-google
连接器/J:8.0.18
String host = "jdbc:mysql://XX.XXX.XXX.X:3306/xxx_database"; String user = "root"; String password = "XXXXXXXXXXXXXXXX";
以上是正确的,用 Netbeans 和 c# 测试。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt = findViewById(R.id.text2);
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection(host, user, password); <= error here
txt.setText("Connected to database.");
} catch (SQLException | ClassNotFoundException throwables) {
txt.setText(throwables.getMessage());
}
}
你一定记得把你的 JDBC 连接代码放在一个 AsyncTask 中,否则它不起作用。 此外,不要将“INTERNET”权限误认为“使用 INTERNET”权限。 您需要后者来执行 JDBC
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/sonoo","root","root");
//here sonoo is database name, root is username and password
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from emp");
while(rs.next())
System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3));
con.close();
}catch(Exception e){ System.out.println(e);}
}
JDBC 在 Android 上很少使用,我当然不会推荐它。
恕我直言,JDBC 专为高带宽、低延迟、高可靠性的网络连接而设计(例如,桌面到数据库服务器,Web 应用程序服务器到数据库服务器)。 移动设备提供的这些功能很少,而且没有一个始终如一。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.