在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
© 版权声明
文章版权归作者所有,未经允许请勿转载。