【问题标题】:Connecting database using MySQL connector使用 MySQL 连接器连接数据库
【发布时间】:2013-12-15 13:30:19
【问题描述】:

我是 Android Eclipse 的初学者。但是,我有一个项目要做一个 Android 应用程序。我无法使用 MySQL 连接器连接到 Android 模拟器来创建登录页面。我错过了一个重要文件吗?

登录页面

package com.example.logininterface;

import com.example.logininterface.R.menu;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    EditText txtUserName;
    EditText txtPassword;
    Button btnLogin;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        txtUserName = (EditText)this.findViewById(R.id.txtUname);
        txtPassword = (EditText)this.findViewById(R.id.txtPwd);
        btnLogin = (Button)this.findViewById(R.id.btnLogin);
        btnLogin.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if ((txtUserName.getText().toString()).equals(txtPassword.getText().toString())) {
                    Toast.makeText(MainActivity.this, "Login Successful", Toast.LENGTH_LONG).show();
                }
                else {
                    Toast.makeText(MainActivity.this, "Invalid Login", Toast.LENGTH_LONG).show();
                }
            }
        });
    }
}

MySQLConn

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Main {

    public static void main(String[] args) throws Exception
    {
        Class.forName("com.mysql.jdbc.Driver");

        Connection con = DriverManager.getConnection(
            "jdbc:mysql://localhost:3306/mobiledb", "teddy", "password");

        PreparedStatement statement = con.prepareStatement("select * from androidlogin");
        ResultSet result = statement.executeQuery();

        while(result.next())
        {
            System.out.println(result.getString(1) + "" + result.getString(2));
        }
    }
}

【问题讨论】:

  • 您遇到过任何异常吗?
  • 我相信我在编码中遗漏了一些东西。我可以在 Eclipse 中使用 java 访问 myqsl 数据库。但不在模拟器中。

标签: java android mysql eclipse android-emulator


【解决方案1】:

我不认为直接从 Android 层访问任何数据库是一个好主意。如果您可以将所需的参数传递给服务器页面(PHP、JSP 等)并且可以从服务器页面完成数据库连接,那就更好了。

关于您的问题,localhost 在这种情况下表示 Android,因此它将在您的模拟器中寻找 MySQL 数据库。相反,您需要使用计算机的 IP 地址。如果您在 *nix/Macintosh 机器上,请转到终端并键入 ipconfigifconfig 以获取 IP 地址。

【讨论】:

  • 意思是我设置了一个php文件来连接mysql?
  • 哦,对不起,我不太清楚计算机的 ip。你能详细说明一下吗?
  • @userVee 打开命令提示符并输入ipconfig 并在列表中查找IP Address。 -- 同样回滚到修订版 1,10.0.0.X 并不是所有人的默认 IP,对于某些人来说,它会是 192.168.1.X
【解决方案2】:

我建议使用 JSON 和 PHP 来连接 MySQL 数据库。这只是一个意见。

【讨论】:

    【解决方案3】:

    最好使用 JSON 与 PHP 脚本进行通信,并在 PHP 脚本中与本地 MySQL 数据库进行通信。你可以试试这个来连接你的 PHP 脚本。

    例子:

    public class Login {
    
        ...
        private static final String LOGIN_URL = "http://XXX.XXX.X.XX/Example/login.php";
        ...
    
        // Invoke by Intent activity by Login class
        class AttemptLogin extends AsyncTask<String, String, Integer> {
    
            ...
            protected void onPreExecute() {
              ....
            }
    
            protected Integer doInBackground() {
                ....
                // Getting product details by making HTTP request
                JSONObject json = jsonParser.makeHttpRequest(LOGIN_URL, "POST",
                                                             params);
                ....
            }
    
            protected void onPostExecute() {
                ....
            }
        }
    

    XXX.XXX.X.XX是你电脑的本地IP地址,也就是说当你的手机和你的电脑连接在同一个网络时,IP地址就是电脑的本地IP地址。不要放入本地主机。 它不起作用

    【讨论】:

      【解决方案4】:

      不要使用“本地主机”,而是使用 10.0.2.2。希望对您有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-18
        • 1970-01-01
        • 1970-01-01
        • 2013-12-01
        • 2023-03-27
        • 1970-01-01
        • 2023-03-30
        • 1970-01-01
        相关资源
        最近更新 更多