问题是我无法使用 Android Studio 连接到我的 MySQL 数据库。我在 Netbeans 上试过,它工作得很好。它一直告诉我它无法创建到数据库服务器的连接,但凭据是正确的。
我使用的版本:
Android Studio: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());
}
}
答案 0 :(得分:0)
你一定要记得把你的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 应用程序服务器到数据库服务器)。移动设备提供的这些很少,而且没有一个始终如一。