Mah*_*her 8 java mysql android mysqlconnection
我试图连接mysql database但我失败了,显示了这个错误
Communications link failure Last packet sent to the server was 1 ms ago
Run Code Online (Sandbox Code Playgroud)
这是我的代码?任何人都可以帮助我
package android_programmers_guide.testconnection;
import java.sql.Connection;
import java.sql.DriverManager;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.widget.EditText;
public class TestConnection extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_connection);
Connection conn = null;
String url = "jdbc:mysql://127.0.0.1:3306/test";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "root";
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url,userName,password);
EditText editText=(EditText) findViewById(R.id.editText1);
editText.setBackgroundColor(Color.GREEN);
editText.setText("Connected to the database");
conn.close();
editText.setBackgroundColor(Color.BLUE);
editText.setText("Disconnected from database");
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_test_connection, menu);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
android应用程序无法与同一系统中的mysql通信。因为,当您运行 Android 应用程序时,它会在模拟器内运行。模拟器是一个 类似于 Android 设备的虚拟移动设备。模拟器本身有一个IP地址。因此,根据应用程序,ip 127.0.0.1是模拟器的ip,因此android应用程序将尝试与模拟器中的mysql进行通信。我们知道,模拟器中不能有mysql,否则会通讯失败。您可以使用SQLite作为数据存储。如果您希望您的 Android 应用程序与mysql通信,您需要在另一个系统中安装mysql并提供该系统的ip。修改您的代码如下:
String url = "jdbc:mysql://192.168.1.102:3306/test";
Run Code Online (Sandbox Code Playgroud)
这里,我提到的192.168.1.102是第二个系统的ip。并且在尝试之前不要忘记对这些系统进行物理连接。
对于额外的知识:- mysql与 android 应用程序的直接通信不是正确的方法。制作一个与mysql通信的 Web 应用程序。在其中添加一个Web服务以将数据存储到mysql中。在 Android 应用程序中添加一个 Web 层,通过此 Web 服务与 Web 应用程序进行通信。您可以使用xml或JSON通过 Web 服务将数据从 Android 应用程序传输到 Web 应用程序。Web 应用程序应该将数据存储到 mysql 中由 Android 应用程序的 Web 服务调用接收。
| 归档时间: |
|
| 查看次数: |
12929 次 |
| 最近记录: |