在Android中链接MySQL数据库,通常需要使用到JDBC驱动或者第三方库,这里我们以使用Volley和PHP作为中间层来实现这个功能为例。
(图片来源网络,侵删)
步骤如下:
1、创建PHP脚本连接MySQL数据库
2、在Android中使用Volley库调用PHP脚本
3、解析返回的JSON数据
1. 创建PHP脚本连接MySQL数据库
我们需要在服务器端创建一个PHP脚本来连接MySQL数据库,这个脚本将接收来自Android应用的请求,然后查询数据库并返回结果。
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn>connect_error) {
die("连接失败: " . $conn>connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn>query($sql);
$response = array();
if ($result>num_rows > 0) {
// 输出每行数据
while($row = $result>fetch_assoc()) {
$response[] = array(id=>$row[id], firstname=>$row[firstname], lastname=>$row[lastname]);
}
} else {
echo "0 结果";
}
echo json_encode($response);
$conn>close();
?>
2. 在Android中使用Volley库调用PHP脚本
在Android应用中,我们可以使用Volley库来发送HTTP请求,需要在项目的build.gradle文件中添加Volley依赖:
dependencies {
...
implementation com.android.volley:volley:1.2.1
}
我们可以创建一个RequestQueue,并使用StringRequest来发送请求:
RequestQueue queue = Volley.newRequestQueue(this);
String url ="http://www.yourwebsite.com/script.php";
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// 处理响应
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// 处理错误
}
});
queue.add(stringRequest);
3. 解析返回的JSON数据
在上面的onResponse方法中,我们可以解析返回的JSON数据,这里我们使用org.json库来解析JSON:
import org.json.JSONArray;
import org.json.JSONObject;
...
@Override
public void onResponse(String response) {
JSONArray jsonArray = null;
try {
jsonArray = new JSONArray(response);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
String id = obj.getString("id");
String firstname = obj.getString("firstname");
String lastname = obj.getString("lastname");
// 使用这些数据更新UI或执行其他操作
}
} catch (JSONException e) {
e.printStackTrace();
}
}
以上就是在Android中链接MySQL数据库的基本步骤,注意,这只是一种可能的实现方式,实际的实现可能会根据你的具体需求和环境有所不同。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/684563.html
© 版权声明
文章版权归作者所有,未经允许请勿转载。



