在Android中直接連接MySQL數據庫并不是一個好主意,因為這樣會暴露數據庫的用戶名和密碼,可能導致安全問題。推薦的做法是使用Web服務(如RESTful API)作為中間層,讓Android應用程序通過HTTP請求與Web服務進行通信,然后Web服務負責與MySQL數據庫交互。
以下是使用Web服務連接MySQL數據庫的簡要步驟:
這里有一個簡單的示例,展示了如何使用PHP和MySQL創建一個Web服務,并在Android應用程序中使用Volley庫發起請求:
PHP Web服務(get_data.php):
<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
// 創建連接
$conn = new mysqli($servername, $username, $password, $dbname);
// 檢查連接
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 查詢數據
$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);
$data = array();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$data[] = $row;
}
} else {
echo "0 results";
}
// 關閉連接
$conn->close();
// 將數據轉換為JSON格式
echo json_encode($data);
?>
Android應用程序(使用Volley庫):
build.gradle
文件:dependencies {
implementation 'com.android.volley:volley:1.2.1'
}
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
String url = "https://yourserver.com/get_data.php";
RequestQueue queue = Volley.newRequestQueue(this);
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONArray jsonArray = new JSONArray(response);
for (int i = 0; i< jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("name");
String email = jsonObject.getString("email");
textView.append(name + " - " + email + "\n");
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
textView.setText("Error: " + error.getMessage());
}
});
queue.add(stringRequest);
}
}
這個示例展示了如何在Android應用程序中使用Volley庫從PHP Web服務獲取數據,并將其顯示在TextView
中。請確保將URL替換為你自己的服務器地址。