Android 连接Mysql进行相关操作——用PHP做中介以及JSON做数据交换

Android+PHP+MYSQL开发简单实例 Android+PHP+MYSQL开发简单实例前段时间做了一个安卓项目,需要用到数据库,之前有写过一点网页相关的东西,所以打算用MYSQL+PHP这个黄金搭档,虽然有点大材小用了。本人是个货真价实的菜鸟,对安卓并不了解,这个项目纯属是赶鸭子上架,之所以写这篇博客,是想把我在项目中遇到的各种问题的解决方法分享给大家,希望对大家有所帮助。接下来我将从三个方面介绍安卓客户端如何通过PHP与MYSQL数据... 阅读详情

这个方法是参考http://www.anddev.org/networking-database-problems-f29/connecting-to-mysql-database-t50063.html 国外老外的一些经验所得。这里我总结一下要点:

1、需要一个mysql数据库,这个怎么搞出来,大家觉得有问题先学学mysql再回来接着看。
2、需要一个php操作mysql数据库的脚本,上传到服务器地址
3、需要修改Android的manifest文件,入网许可!!

一、首先我们假如已经把MYSQL数据库建立好了,写一个PHP操作文件上传到服务器访问地址

<?php
	mysql_connect("localhost","yourName","yourPassword");
	mysql_select_db("yourDB");
	$q=mysql_query("SELECT * FROM user_info WHERE uName ='".$_REQUEST['name']."'");
	while($e=mysql_fetch_assoc($q))
			$output[]=$e;
		print(json_encode($output));
	mysql_close();
?>
稍微解析一下上面PHP内容,

$q=mysql_query("SELECT * FROM user_info WHERE uName ='".$_REQUEST['name']."'");

这句当中

.$_REQUEST['name'].


就表示要从android里面输入到这里的一个键值对的值,id为name,下面我们写Android程序会再说明一下。

json_encode($output));

这个就是把输出的结果转成json的数据格式返回给Android进行json数据解析。

二、准备写Android关键的实现连接Mysql方法

//连接MYSQL数据库方法
    //并且返回结果
    private String checkServerDataByName()
    {
    	//数据流
    	InputStream is = null;
    	
    	//返回值
    	String result = "";
    	String returnResult ="";
    	//这里增加要传送到PHP进行MYSQL操作的名称条件
    	ArrayList<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
    	nameValuePair.add(new BasicNameValuePair("name", mInputName));
    	
    	//Http post
    	try {
    		/*创建一个HttpClient的一个对象*/
			HttpClient httpClient = new DefaultHttpClient();
			/*创建一个HttpPost的对象*/
			//MYSQL_0代表我上传的上面写得PHP文件服务器地址
			HttpPost httpPost = new HttpPost(MYSQL_0);
			 /*设置请求的数据*/
			httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
			 /*创建HttpResponse对象,处理请求*/
			HttpResponse response = httpClient.execute(httpPost);
			/*获取这次回应的消息实体,获取返回的实体消息*/
			HttpEntity entity = response.getEntity();
			/*把这些消息指向对象实体的数据流*/
			is = entity.getContent();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			Log.e("log_tag", "Error in http connection "+e.toString());
		} 
        
		//接下来对上面能够获取返回的IS数据流进行相关处理
		//这里不懂的可以先看看JAVA里面的IO流
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(is,
					"iso-8859-1"), 8);
			StringBuilder sb = new StringBuilder();
			String line = null;
			while ((line = br.readLine()) != null) {
				sb.append(line + "\n");
			}
			is.close(); //读完记得一定要关闭,其实这个应该放到finally块里面,这里偷懒了
			result = sb.toString();
		} catch (Exception e) {
			// TODO: handle exception
			Log.e("log_tag", "Error converting result "+e.toString());
		}
		
		try {
			//转换为json data类型
			JSONArray jArray = new JSONArray(result);
			if (jArray.length() > 0) {
				for (int i = 0; i < jArray.length(); i++) {
					JSONObject json_data = jArray.getJSONObject(i);
					//通过返回的json储存的搜索过得mysql列表值进行获取
					returnResult = "Your Id = " + json_data.getInt("uID");
				}
			} else {
				returnResult = "Can't find Your name!";
			}
		} catch (Exception e) {
			// TODO: handle exception
			Log.e("log_tag", "Error parsing data "+e.toString());
		}
		
		return returnResult;
    }

以上补充说明:

ArrayList<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
    	nameValuePair.add(new BasicNameValuePair("name", mInputName));

这两段就是创建了一个键值对,通过HttpPost的方式给服务器第一条上传的PHP进行交互,我们看到“name”就是第一条中搜索语句里面的name,而我这里mInputName是我的Android程序通过一个EditText框通过用户输入后进行获取的String.

小结以上关键点:
1、HttpClient、HttpPost、HttpResponse、HttpEntity这些知识点,主要和网络上的PHP中介进行操作MYSQL的一个交互。
2、接着要用到JAVA里面的IO流,像网络IO最好使用BufferedReader,然后StringBuilder把读出来的数据一行一行build进来。
3、最后要学会用JSON把上面StringBuilder一行一行读出来的内容,其实转回了String对象,上面提及的是result,通过把这个result转成Json data,这里用

JSONArray jArray = new JSONArray(result);

那么我们就可以直接jArray长度看有返回多少个搜索完后的Mysql表行

JSONObject json_data = jArray.getJSONObject(i);

如果存在这些表行值,那么把它们一个一个获取出来,转化成JSONObject对象,就相当于一行MYSQL结果一个Object的形式,方便用getInt或者getString通过相应的列名进行获取结果。

三、上面其实操作已经完成了,下面修改一下Android的manifest文件进行入网许可

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="chiuan.android"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".HelloChiuanActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity 
            android:label="@string/outPutScreen"
            android:name=".OutPutActivity"
            ></activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET"/>
</manifest>

上面的文件是我的,就是粉红色那句,加上运行看看结果吧!祝大家成功!
我的结果:


Android校园招聘App开发全解析:从架构设计到性能优化实战 移动应用开发是连接用户与服务的核心载体,其关键在于构建稳定、高效且体验良好的客户端。原生安卓开发凭借其深度可控性、成熟生态以及对系统底层机制的完整支持,成为深入理解移动端技术原理的优选路径。在工程实践中,合理的架构设计(如MVVM)、高效的网络通信(如Retrofit+OkHttp)以及流畅的UI渲染(如RecyclerView优化)是保障应用质量的技术基石,这些能力对于开发电商、社交及工具类App具有普适价值。具体到校园招聘这类具有典型双向交互需求的应用场景,其技术实现需要综合运用列表性能优化、网络状态管 阅读详情

相关推荐

android连接远程数据库PHP+MYSQL

android连接远程数据库PHP+MYSQL

android与php mysql_手把手教你android通过PHP操作Mysql(1)

首先,这篇文章是一篇很基础的教学文,适合于只学过安卓基础,没学过其他网络操作的人。大神请绕道····文章分为几步:1、用xampp搭建本机的服务器和Mysql2、用PHP写一个与安卓交互的php文件3、在android开发工具上写客户端逻辑好吧,开始!1、xampp是一个集成的软件包,可以快速搭建服务器(?是这样吗?我具体也不清楚,),这个自行百度下载,记得不要下精简版的,要下完整版的!!2、xa...

weixin_29980355的博客 383

Mysql+Json+Android

数据库:Mysql 数据格式:Json 平台:Android

Android通过PHP连接MySQL(读取)

1. 通过 MySQL在windows下的配置 中介绍第二种方法,在服务器机器上配置php和mysql环境,譬如我的服务器机器ip为:10.141.249.136 2. 新建在test数据库下新建一个teacher表,表的内容如下: 3. 在服务器机器上的phpnow安装目录E:\PHPnow-1.5.5\htdocs下新建一个test.php文件,文件内容如下

周不董 1150

android通过PHP操作mysql例子

一个简单的 android通过php操作mysql的例子 (要注意的是 在一个局域网中有效 外网没测呢) 同大家分享一下

从Gitee上部署视觉工程到Linux虚拟机

(使用SVM来识别装甲板的编号,此处手机上的图片中只有灯条没有数字,SVM无法识别出编号。这两行代码的意义是,当SVM识别不出或者识别不到编号时,把装甲板的编号默认为2号。找到自瞄程序中,数字识别类下的这两行代码,把注释去掉。这样,每次打开新的终端时,环境变量都会自动设置。(2)查看虚拟机设置选项,检查虚拟机USB接口是否为3.0及以上的接口。如果不是,要更改好。这样,每次打开新的终端时,环境变量都会自动设置。后,每次打开终端时自动设置这些环境变量,你可以将。打开第一个终端,用来挂ROS的内核启动页面。

2301_81035291的博客 1520

php 写入mysql 反馈_Android+PHP+Mysql实现用户反馈功能

package com.android.up;import java.util.ArrayList;import java.util.List;import org.apache.http.NameValuePair;import org.apache.http.message.BasicNameValuePair;import org.json.JSONObject;import com.and...

weixin_42351606的博客 151

Jetson Nano 【1】入手开箱、烧系统

类似于半开箱哈哈 怀着小期待的心情,屁颠屁颠跑到村口领快递,拿到了这个香喷喷的Jetson Nano 开发板 开箱: 由于太激动了忘记拍点啥,于是在最后留了张全家福 板子的结构: 我觉得这个有必要记录一下,于是去官方文档拿了张图来:官方文档传送 1=SD card 的卡槽,位于第二层板子的背部,也就是大风扇屁股位置 2=40针扩展接头(还没开用) 3=USB的供电口,根据大佬测试(某哩...

椰子奶糖的博客 4194

【php + MySQL + Android】Android端发送post请求访问服务器MySQL,对用户账号密码进行登录验证

Android端发送post请求访问服务器MySQL,对用户账号密码进行登录验证。 连续更新,超详细。

niuguobao的博客 5097

扣子(coze)案例^第22期:零代码打造小红书竞品监控系统+AI自动生成运营策略建议

本文详细介绍了如何利用扣子(coze)平台零代码搭建小红书竞品监控系统。该系统通过自动化工作流抓取竞品笔记数据,并存入飞书多维表格,结合AI能力自动生成包含可视化分析报告在内的运营策略建议,帮助运营者高效进行数据驱动的市场分析。

weixin_29313239的博客 1004

ADRV9009的学习历程(一)

** AD9361的同胞ADRV9009 ** 终于记录一下了 距离第一次想写博客记录自己学习的点点滴滴,大概已经过去有一年有余。一直都是停留在心有余而力不足的境界。 基本每次做项目遇到问题都会来优快云寻求帮助,这里虽离庙堂较远,但高手云集。每每读来,思绪万千,次次膜拜。 趁这次又学习了一样新物件,就记录一下,望大神看见能赐教一下。 ADRV9009 最近有项目要用到ADRV9009这个芯片。就来学习一下。做过AD9361的都知道,ADI官方会给出这个芯片的参考手册、数据手册和驱动程序。当然我只是见过AD

weixin_42868560的博客 1万+

类似失物寻找的App-Android+php+mysql的初次探索

概述:在Android-app端:发布简短数据,php接口与android数据接收/发送,php将数据用sql语句插入数据库 关键字:Android,php,mysql,BottomNavigationItemBar 遇到的坑:android+mysql直接尝试用jdbc遇到了坑,使用AndroidStudio去完成这个任务总是会报错,在查找很长时间之后,发现Android+jdbc+mysq

小王同学的博客 1146

YOLOv12涨点优化:自研检测头 | 独家创新(Partial_C_v12Detect)检测头结构创新,实现涨点

现有12Detect进行二次创新,提升检测精度,独家创新(Partial_C_12Detect)检测头结构创新,适合科研创新度十足,强烈推荐

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 630

人生最好的php,mysql,linux,redis,docker等相关技术经典面试题,新手收藏学习,持续更新中。。。

php面试题 1、写出你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面) # 200:服务器请求成功 # 301:永久重定向,旧网页已被新网页永久替代 # 302:表示临时性重定向 # 400:错误请求 # 401:未授权,没有权限,未登录 # 403:禁止访问 # 404:找不到页面 # 500:系统错误,服务器错误 # 502:无效响应 # 503:服务不可用,服务器由于维护或者负载过重未能应答 # 504:网关超时(nginx做为反向代理服务器,所连接的应用服务器无响应导致

cxhblog的博客 1万+

【银河麒麟V10】【桌面】【服务器】系统启动问题

1、如果之前运行好好的,重启后系统报错,一般80%是因为fstab的问题,回想下之前有没有添加过外接存储,修改过/etc/fstab,如果是的话一般是因为存储异常(比如网络存储无法连接,本地存储路径变化)导致系统开机自检失败,导致无法正常启动; 处理方式:进入单用户(单用户进入的几种方式上面有专门文章介绍),修改/etc/fstab,将新增的内容暂时注释掉,然后重启系统,能正常进入系统后再分析失败原因。 ...

桂安俊@KylinOS 3万+

使用Qt编译Qt WebEngine

这就是使用Qt编译Qt WebEngine模块的基本步骤。通过按照上述步骤,您应该能够成功编译和使用Qt WebEngine来嵌入Web内容到您的Qt应用程序中。Qt WebEngine是Qt框架的一个模块,它提供了一个现代的Web浏览器引擎,可以在Qt应用程序中嵌入Web内容。首先,需要获取Qt的源代码。如果尚未安装,可以从Qt官方网站下载并安装Qt。完成Qt的安装后,您可以构建并运行Qt WebEngine示例来验证编译是否成功。这将把编译好的Qt库文件和头文件安装到之前指定的安装目录中。

DevForge的博客 3016

mysql concat 引号_MySQL concat函数里面单引号的使用

AD帐户操作C&num;示例代码(二)——检查密码将过期的用户本文接着和大家分享AD帐户操作,这次开发一个简单的检查密码将过期用户的小工具. 首先,新建一个用户实体类,属性是我们要取的用户信息. public class UserInfo { /// 升级nodejs版本node有一个模块叫n,是专门用来管理node.js的版本的. 首先安装n模块: npm install -g n 第二...

weixin_30431137的博客 464

基于Spring Boot + Vue 3的前后端分离教材订购系统设计与实现

随着高校信息化建设的不断深入,传统手工管理教材的方式已无法满足高效、准确、透明的需求。文章将详细阐述系统的需求分析、架构设计、数据库设计、核心功能模块的实现(包括用户认证、教材管理、购物车、订单管理等),并提供关键代码片段。一个集中化、在线化的教材订购系统可以有效地解决这些问题,实现教材信息的统一管理、学生在线选书、订单自动汇总、财务清晰对账,极大地提升了管理效率和服务质量。系统采用了先进的前后端分离架构,实现了用户管理、教材管理、购物车、订单管理等核心功能,具有良好的可扩展性和可维护性。

2201_76125393的博客 330

mysql生成app接口_PHP开发APP接口实现--基本篇

最近一段时间一直在做APP接口,总结一下APP接口开发以来的心得,与大家分享:1. 客户端/服务器接口请求流程:安卓/IOS客户端 –> PHP接口 –> 服务器端 –> 数据处理 –> 返回值(客户端接收并处理)APP的通信方式:客户端 (接口地址:http://app.com/api.php?format=xml/json)客户端APP ---------...

weixin_39969448的博客 188

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

从零开始搭建架构实施Android项目

从零开始搭建架构实施Android项目 时间 2016-01-11 23:59:00  博客园精华区 原文  http://www.cnblogs.com/lao-liang/p/5122425.html 主题 数据库 安卓开发 我们先假设一个场景需求:刚有孩子的爸爸妈妈对用照片、视频记录宝宝成长有强烈的意愿,但苦于目前没有一款专门的手机APP做这件事。A公司洞察到市场

xiaoxiaoniaoge的专栏 598

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

微信小程序基于Android的党员之家服务系统APP_y1o0th43

该生选题结合当前行业最新的热点,具有一定的实际应用价值,对现实中的系统开发能够提供较为有效的解决方案,满足了用户的日常生活日益增长的需求,能够对该生在计算机科学与技术专业学习的知识和技术进行有效的综合实践和检验。该选题的难度适中、工作量饱满、进度安排合理、前期基础或工作条件能够支撑选题研究,接下来按照功能模块进行了系统的详细设计与实现,在开发过程中,注重代码的规范性和可维护性,并进行了充分的测试以确保系统的稳定性和安全性,最后对系统进行了全面的测试与评估,包括功能测试、性能测试、安全测试等。

QQ3166678367的博客 1196

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: Android 学习笔记 Android的王国\开发入门蓝图
下一篇: Ruby——双引号引用里面反斜线转义表
Chiuan
博客等级 码龄15年 165粉丝 57原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值