Android通过json向MySQL中读写数据的方法详解【写入篇】

作者:天鹰之眼 时间:2022-07-20 19:12:39 

本文实例讲述了Android通过json向MySQL中写入数据的方法。分享给大家供大家参考,具体如下:

先说一下如何通过json将Android程序中的数据上传到MySQL中:

首先定义一个类JSONParser.Java类,将json上传数据的方法封装好,可以直接在主程序中调用该类,代码如下


public class JSONParser {
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";
// constructor
public JSONParser() {
}
// function get json from url
// by making HTTP POST
public JSONObject makeHttpRequest(String url, String method,
List<NameValuePair> params) {
// Making HTTP request
try {
// request method is POST
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "UTF-8"));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
json = sb.toString();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
Log.d("json", json.toString());
}
// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
// return JSON String
return jObj;
}
}

主程序中这样调用:


params = new ArrayList<NameValuePair>();
//这里可以替换成你自己程序中的一些键值对
params.add(new BasicNameValuePair("time", ""+time));
params.add(new BasicNameValuePair("lat", ""+lat));
params.add(new BasicNameValuePair("lon", ""+lon));
params.add(new BasicNameValuePair("encyptiontype",encyptiontype));
params.add(new BasicNameValuePair("rssi",rssi));
params.add(new BasicNameValuePair("name",name));
JSONParser jsonParser = new JSONParser();
//数据的php文件的路径
String url_up = "******/文件名字.php";
try{
JSONObject json = jsonParser.makeHttpRequest(url_up,"POST", params);
Log.v("uploadsucceed", "uploadsucceed");
}catch(Exception e){
e.printStackTrace();
}

最后就是定义一个接收数据的php文件:


<?php
// array for JSON response
//此处需要将数据库名和表明还有密码做相应修改,改成你自己的
$con = mysql_connect("localhost","root",null);
if (!$con) {
die('Could not connect:'.mysql_error() );
}
mysql_select_db("a0722152915", $con);
$response = array();
include("conn.php");
// check for required fields
if (isset($_POST['time']) && isset($_POST['lat']) && isset($_POST['lon'])&& isset($_POST['encyptiontype'])&& isset($_POST['rssi'])&& isset($_POST['name'])) {
$time = $_POST['time'];
$lat = $_POST['lat'];
$lon = $_POST['lon'];
$encyptiontype = $_POST['encyptiontype'];
$rssi = $_POST['rssi'];
$name = $_POST['name'];
$result = mysql_query("INSERT INTO wifi_state(time, lat, lon,encyptiontype,rssi,name) VALUES('$time', '$lat', '$lon','$encyptiontype','$rssi','$name')");
echo $result;
// check if row inserted or not
if ($result) {
// successfully inserted into database
$response["success"] = 1;
$response["message"] = "Product successfully created.";
// echoing JSON response
echo json_encode($response);
} else {
// failed to insert row
$response["success"] = 0;
$response["message"] = "Oops! An error occurred.";
// echoing JSON response
echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
// echoing JSON response
echo json_encode($response);
}
?>

注意:如果你的设备中android操作系统是4.0以上的,那么要在主程序中加上下面一段代码,才能上传成功


StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
 .detectDiskReads()
 .detectDiskWrites()
 .detectNetwork() // or .detectAll() for all detectable problems
 .penaltyLog()
 .build());
 StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
 .detectLeakedSqlLiteObjects()
 .detectLeakedClosableObjects()
 .penaltyLog()
 .penaltyDeath()
 .build());

如果是4.0以下的操作系统当然不用加了

下面是上传成功后的效果图:

Android通过json向MySQL中读写数据的方法详解【写入篇】

读数据的方法讲放在下一篇《Android通过json向MySQL中读写数据的方法详解【读取篇】》中介绍

希望本文所述对大家Android程序设计有所帮助。

标签:Android,json,MySQL
0
投稿

猜你喜欢

  • Android 自定义View实现多节点进度条功能

    2022-05-04 17:13:37
  • Spring Boot启动banner定制的步骤详解

    2023-03-04 19:30:20
  • logback使用filter过滤日志操作

    2022-07-11 03:20:27
  • Spring Boot中@ConditionalOnProperty的使用方法

    2021-11-27 09:07:33
  • Scala异常处理的方法深入分析

    2022-01-09 19:50:35
  • Android列表实现(3)_自定义列表适配器思路及实现代码

    2023-08-09 09:02:45
  • SpringBoot项目中如何访问HTML页面

    2021-08-09 11:19:07
  • C# 输出参数out问题

    2023-02-27 00:19:32
  • Android实现图像切换器

    2023-11-27 00:45:41
  • java程序设计语言的优势及特点

    2022-08-16 09:12:57
  • SpringBoot统一功能处理实现的全过程

    2021-06-12 11:14:49
  • Java由浅入深带你精通继承super

    2023-11-23 02:34:28
  • Spring异常捕获且回滚事务解决方案

    2023-04-25 18:32:41
  • 深入浅出MyBatis中映射文件和实体类的关联性

    2022-08-29 07:34:08
  • Java实现获取客户端真实IP方法小结

    2021-10-15 03:53:16
  • Flutter绘图组件之CustomPaint使用详解

    2021-12-13 01:26:06
  • 教你3分钟了解Android 简易时间轴的实现方法

    2023-04-02 20:56:19
  • Android使用Rotate3dAnimation实现3D旋转动画效果的实例代码

    2023-07-30 12:21:29
  • java实现图片写入高清字体及带边框的方法

    2023-11-29 03:43:47
  • 微信小程序 navigator 跳转url传递参数

    2022-03-17 05:46:56
  • asp之家 软件编程 m.aspxhome.com