我是Android Eclipse的初学者。但是,我有一个项目来做一个Android应用程序。我无法使用MySQL连接器连接到Android模拟器来创建登录页面。我错过了一个重要文件吗?
Loginpage
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));
}
}
}
答案 0 :(得分:2)
我不认为直接从Android层访问任何数据库是一个好主意。如果您可以将所需参数传递到服务器页面(PHP,JSP等)并且可以从服务器页面完成数据库连接,那会更好。
提出您的问题,localhost
在这种情况下意味着Android,因此它将在您的模拟器中寻找MySQL数据库。相反,您需要使用计算机的IP地址。如果您在* nix / Macintosh计算机上,请转到终端并键入ipconfig
或ifconfig
以获取IP地址。
答案 1 :(得分:1)
我建议使用JSON和PHP连接到MySQL数据库。这只是一个意见。
答案 2 :(得分:1)
最好使用JSON与PHP脚本进行通信,并在PHP脚本中与localhost 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地址。不要放入localhost。 无法使用。
答案 3 :(得分:0)
而不是使用“Localhost”使用10.0.2.2。希望它有所帮助!