繁体   English   中英

无法创建到 MySQL 数据库服务器的 JDBC 连接

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM