android怎么访问远程android 数据库加密

新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
空间积分0 信誉积分1119 UID阅读权限90积分17584帖子精华可用积分17590 专家积分0 在线时间1213 小时注册时间最后登录
大富大贵, 积分 17584, 距离下一级还需 2416 积分
帖子主题精华可用积分17590 专家积分0 在线时间1213 小时注册时间最后登录
论坛徽章:19
Android不能直接访问MySQL数据库,我百度了一下,网上的例子是用一个PHP页面作为中介来访问,我不会PHP,因此只好用JSP来完成,作了一个类似的页面,可是Android程序运行起来之后系统还是提示无法访问网络。我用Android上的浏览器访问 上的页面没有问题,可是用我自己的程序访问的时候,系统地日志里面的数据显示是无法访问网络。
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();&&
& & ?&&&复制代码我修改之后的JSP页面public class LoginServlet extends HttpServlet {
& & & & private static final long serialVersionUID = 1L;
& & & & /**
& & & &&&* @see HttpServlet#HttpServlet()
& & & &&&*/
& & & & public LoginServlet() {
& & & & & & & & super();
& & & & & & & & // TODO Auto-generated constructor stub
& & & & }
& & & & /**
& & & &&&* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
& & & &&&*& && &response)
& & & &&&*/
& & & & protected void doGet(HttpServletRequest request,
& & & & & & & & & & & & HttpServletResponse response) throws ServletException, IOException {
& & & & & & & & int flag = 0;
& & & & & & & & PrintW
& & & & & & & & String name = request.getParameter(&username&);
& & & & & & & & String password = request.getParameter(&password&);
& & & & & & & & if (this.getUserName(name)) {
& & & & & & & & & & & & if (this.getPassword(name, password)) {
& & & & & & & & & & & & & & & & flag = 1;
& & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & flag = 0;
& & & & & & & & & & & & }
& & & & & & & & } else {
& & & & & & & & & & & & flag = -1;
& & & & & & & & }
& & & & & & & & response.setContentType(&text/ charset=UTF-8&);
& & & & & & & & out = response.getWriter();
& & & & & & & & out.println(&flag=& + flag);
& & & & & & & & out.flush();
& & & & & & & & out.close();
& & & & }
& & & & /**
& & & &&&* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
& & & &&&*& && &response)
& & & &&&*/
& & & & protected void doPost(HttpServletRequest request,
& & & & & & & & & & & & HttpServletResponse response) throws ServletException, IOException {
& & & & & & & & int flag = 0;
& & & & & & & & PrintW
& & & & & & & & String name = request.getParameter(&username&);
& & & & & & & & String password = request.getParameter(&password&);
& & & & & & & & if (this.getUserName(name)) {
& & & & & & & & & & & & if (this.getPassword(name, password)) {
& & & & & & & & & & & & & & & & flag = 1;
& & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & flag = 0;
& & & & & & & & & & & & }
& & & & & & & & } else {
& & & & & & & & & & & & flag = -1;
& & & & & & & & }
& & & & & & & & response.setContentType(&text/ charset=UTF-8&);
& & & & & & & & out = response.getWriter();
& & & & & & & & out.println(&flag=& + flag);
& & & & & & & & out.flush();
& & & & & & & & out.close();
& & & & }
& & & & private boolean getUserName(String name) {
& & & & & & & & boolean status =
& & & & & & & & Database db = new Database();
& & & & & & & & ResultSet rs = db
& & & & & & & & & & & & & & & & .Read(&select count(*) from biz_owner where loginName='& + name
& & & & & & & & & & & & & & & & & & & & & & & & + &';&);
& & & & & & & & try {
& & & & & & & & & & & & if (rs.next()) {
& & & & & & & & & & & & & & & & status =
& & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & status =
& & & & & & & & & & & & }
& & & & & & & & & & & & rs.close();
& & & & & & & & & & & & db.Close();
& & & & & & & & } catch (SQLException e) {
& & & & & & & & & & & & e.printStackTrace();
& & & & & & & & }
& & & & & & & &
& & & & }
& & & & private boolean getPassword(String name, String password) {
& & & & & & & & boolean status =
& & & & & & & & Database db = new Database();
& & & & & & & & ResultSet rs = db
& & & & & & & & & & & & & & & & .Read(&select loginName from biz_owner where loginName='&
& & & & & & & & & & & & & & & & & & & & & & & & + name + &';&);
& & & & & & & & try {
& & & & & & & & & & & & rs.next();
& & & & & & & & & & & & if (rs.getString(1).equals(password)) {
& & & & & & & & & & & & & & & & status =
& & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & status =
& & & & & & & & & & & & }
& & & & & & & & & & & & rs.close();
& & & & & & & & & & & & db.Close();
& & & & & & & & } catch (SQLException e) {
& & & & & & & & & & & & e.printStackTrace();
& & & & & & & & }
& & & & & & & &
& & & & }
}复制代码下面就是Android端的程序代码了,基本也是从网上拷贝的private static final String ip = &http://10.0.2.2:8080/Information_Release_System_Manager/&;复制代码& & & & public int login(String jsp, String user, String password) {
& & & & & & & & int status = 0;
& & & & & & & & NameValuePair param1 = new BasicNameValuePair(&username&, user);
& & & & & & & & NameValuePair param2 = new BasicNameValuePair(&password&, password);
& & & & & & & & List&NameValuePair& data = new ArrayList&NameValuePair&();
& & & & & & & & data.add(param1);
& & & & & & & & data.add(param2);
& & & & & & & & HttpClient client = new DefaultHttpClient();
& & & & & & & & HttpPost request = new HttpPost(ip + jsp);
& & & & & & & & try {
& & & & & & & & & & & & request.setEntity(new UrlEncodedFormEntity(data));
& & & & & & & & } catch (UnsupportedEncodingException e) {
& & & & & & & & & & & & e.printStackTrace();
& & & & & & & & }
& & & & & & & & try {
& & & & & & & & & & & & HttpResponse response = client.execute(request);
& & & & & & & & & & & & HttpEntity entity = response.getEntity();
& & & & & & & & & & & & InputStream is = entity.getContent();
& & & & & & & & & & & & BufferedReader reader = new BufferedReader(new InputStreamReader(
& & & & & & & & & & & & & & & & & & & & is, &iso-8859-1&));
& & & & & & & & & & & & String line =
& & & & & & & & & & & & if ((line = reader.readLine()) != null) {
& & & & & & & & & & & & & & & & Log.i(&resurn String&, line);
& & & & & & & & & & & & & & & & status = Integer
& & & & & & & & & & & & & & & & & & & & & & & & .parseInt(line.substring(line.indexOf(&=&) + 1));
& & & & & & & & & & & & }
& & & & & & & & } catch (ClientProtocolException e) {
& & & & & & & & & & & & e.printStackTrace();
& & & & & & & & } catch (IOException e) {
& & & & & & & & & & & & e.printStackTrace();
& & & & & & & & }
& & & & & & & &
& & & & }复制代码
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
空间积分0 信誉积分1119 UID阅读权限90积分17584帖子精华可用积分17590 专家积分0 在线时间1213 小时注册时间最后登录
大富大贵, 积分 17584, 距离下一级还需 2416 积分
帖子主题精华可用积分17590 专家积分0 在线时间1213 小时注册时间最后登录
论坛徽章:19
那个用于和Android程序通信的 LoginServlet经过PC端的jsp页面测试,完全没有问题,可以返回一个值,至于那个值需要怎么传递给客户端,我有些不太确定
空间积分0 信誉积分534 UID阅读权限20积分295帖子精华可用积分295 专家积分0 在线时间286 小时注册时间最后登录
稍有积蓄, 积分 295, 距离下一级还需 205 积分
帖子主题精华可用积分295 专家积分0 在线时间286 小时注册时间最后登录
论坛徽章:0
我在安卓上可以访问H2数据库,远程的没试过
空间积分0 信誉积分1119 UID阅读权限90积分17584帖子精华可用积分17590 专家积分0 在线时间1213 小时注册时间最后登录
大富大贵, 积分 17584, 距离下一级还需 2416 积分
帖子主题精华可用积分17590 专家积分0 在线时间1213 小时注册时间最后登录
论坛徽章:19
& & H2 ,没用过,SQLite只是一个本地文件,而MySQL涉及网络远程访问,貌似不支持
空间积分0 信誉积分534 UID阅读权限20积分295帖子精华可用积分295 专家积分0 在线时间286 小时注册时间最后登录
稍有积蓄, 积分 295, 距离下一级还需 205 积分
帖子主题精华可用积分295 专家积分0 在线时间286 小时注册时间最后登录
论坛徽章:0
H2是一个嵌入式的DB,很类似sqlite,它支持JDBC的接口,也是一个jar文件,速度很快,关键是不用实现什么DBHelper接口来操作DB。
android上使用MYSQL的问题在于,mysql的JDBC依赖有些类(如:javax.naming)android没有,需要添加依赖包,至今还未搞定
空间积分0 信誉积分1119 UID阅读权限90积分17584帖子精华可用积分17590 专家积分0 在线时间1213 小时注册时间最后登录
大富大贵, 积分 17584, 距离下一级还需 2416 积分
帖子主题精华可用积分17590 专家积分0 在线时间1213 小时注册时间最后登录
论坛徽章:19
Shaquile 发表于
H2是一个嵌入式的DB,很类似sqlite,它支持JDBC的接口,也是一个jar文件,速度很快,关键是不用实现什么DBH ...
额,这样啊,谢谢你
空间积分0 信誉积分1119 UID阅读权限90积分17584帖子精华可用积分17590 专家积分0 在线时间1213 小时注册时间最后登录
大富大贵, 积分 17584, 距离下一级还需 2416 积分
帖子主题精华可用积分17590 专家积分0 在线时间1213 小时注册时间最后登录
论坛徽章:19
Shaquile 发表于
H2是一个嵌入式的DB,很类似sqlite,它支持JDBC的接口,也是一个jar文件,速度很快,关键是不用实现什么DBH ...
我的目的是让安卓上的应用程序能够访问PC端服务器上的数据库,这个H2 恐怕不符合我的需求
空间积分0 信誉积分534 UID阅读权限20积分295帖子精华可用积分295 专家积分0 在线时间286 小时注册时间最后登录
稍有积蓄, 积分 295, 距离下一级还需 205 积分
帖子主题精华可用积分295 专家积分0 在线时间286 小时注册时间最后登录
论坛徽章:0
经过一周的调测,终于实现了android下访问本机或远程MYSQL,sql server的正在调试中。。。虽说不建议在android中直接访问DB,不过作为学习,可以试试。
1。andorid主线程缺省不能访问网络(它希望在子线程中实现)。若非要在主线程,要加上一下的代码& & & & & & & & & & & & StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads()&&
& & & & & & & && && && && & .detectDiskWrites().detectNetwork().penaltyLog().build());&&
& & & & & & & && &&&StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects()&&
& & & & & & & && && && && & .detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());&&复制代码2。在manifest.xml允许android访问网络& & &uses-permission android:name=&android.permission.INTERNET&/&复制代码3. 要是访问本地,用10。0。2。2,不用127。0。0。1
空间积分0 信誉积分1119 UID阅读权限90积分17584帖子精华可用积分17590 专家积分0 在线时间1213 小时注册时间最后登录
大富大贵, 积分 17584, 距离下一级还需 2416 积分
帖子主题精华可用积分17590 专家积分0 在线时间1213 小时注册时间最后登录
论坛徽章:19
Shaquile 发表于
回复 7# 方兆国
经过一周的调测,终于实现了android下访问本机或远程MYSQL,sql server的正在调试中。。 ...
空间积分0 信誉积分28 UID阅读权限10积分6帖子精华可用积分6 专家积分0 在线时间7 小时注册时间最后登录
白手起家, 积分 6, 距离下一级还需 194 积分
帖子主题精华可用积分6 专家积分0 在线时间7 小时注册时间最后登录
论坛徽章:0
一个不错的sqlite讲解的文章,希望对你有帮助
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处利用JSON实现Android高效_安全访问远程数据库的一种方式_中华文本库
第1页/共4页
文本预览:
2011 年 12 月 第 12 期 第 32 卷
韶关学院学报 · 自然科学 Journal of Shaoguan University · Natural Science
Dec.2011 Vol.32 No.12
利用 JSON 实现 Android 高效、安全 访问远程数据库的一种方式
权重民 1, 彭昕昀 2
(1.西安思源学院 信息化办公室,陕西 西安 710038; 2.韶关学院 物理与机电工程学院,广东 韶关 512005)
摘 要 :随 着 手 机 及 移 动 设 备 的 快 速 的 发 展 ,越 来 越 多 的 移 动 终 端 需 要 访 问 数 据 库 服 务 器 ,利 用 JSON 通 用 标 准 封 装,通过 HTTP 协议传输,利用 Web 应用服务器访问数据库,并且使用加密和压 缩 保证 了 数 据 传输 的 效 率 和安 全 , 非常适合中小型移动程序的实际应用 . 关键词:Android ;数据库;JSON ;Web 应用服务器
中图分类号:TP392
文献标识码:A
文章编号: (2011 )12-0016-05
近 2 年 , 随着智能手机及平板电脑的快速发展,同时伴随着 3G 网络的逐渐普及,移动开发越来越受到 开发人员的青睐,而谷歌推出的 Android 系统以其开放、优秀的特性很快受到开发人员的推崇,很多知名网 站都推出了 Android 客户端版本,例如腾讯、新浪、淘宝都有对应的版本 . 同时很多数据库应用程序都从原 来的 Windows 桌面程序延伸到移动设备上, 由于移动设备的性能及内存等肯定无法与台式机及笔记本电 脑相比,访问数据库也不可能像桌面安装各种数据库的客户端,当然目前绝大多数数据库也没有直接运行 在移动设备的客户端,由于手机及移动设备很多时间都是利用 3G 通过互联网访问远程数据库的,为了能 够让手机及移动设备访问后台数据库,必须选用一种通用、快速、安全的方法 . 经过各种方式的测试及实验, 笔者选用了 JSON 作为 Android 设备访问 Web 应用服务器的中间桥梁, 再通过 Web 应用服务器访问数据 库的,并对数据传输过程进行压缩和加密,实现了高效、安全的数据库访问,并经过实际应用,效果较好,达 到了预期要求 .
1 JSON 的基本原理及访问数据库实现
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式 . JSON 可以将 JavaScript 对象中表示的
一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串 从 Web 客 户 机 传 递 给 服 务 器 端 程 序 . 这个字符串看起来有点儿古怪, 但是
JavaScript 很容易解释它,而且 JSON 可
以表示比名称(值)对更复杂的结构 . 例 如,可以表示数组和复杂的对象,而不 仅仅是键和值的简单列表 [1]. 因此 JSON 也非常适合传输数据库的记录类型,图
1 为直接返回 JSON 运行模式 .
直接返回 JSON 运行模式
收稿日期: 作者简
第1页/共4页
寻找更多 ""Android配合WebService访问远程数据库_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
5页免费13页免费3页免费6页免费2页免费14页免费10页免费4页免费8页免费5页免费
Android配合WebService访问远程数据库|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢Android如何连接远程数据库,对数据库进行增删改查操作??_百度知道
Android如何连接远程数据库,对数据库进行增删改查操作??
是不是还要弄个web端用什么方法可以实现啊,间接的去访问数据库啊,有人说是访问jsp页面
提问者采纳
发请求 在服务器端实现啊
提问者评价
能说的再详细点吗
其他类似问题
android的相关知识
按默认排序
其他1条回答
弄个web端比较合适。
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁请问android如何访问远程数据库?
[问题点数:40分,结帖人Ring_Pt]
请问android如何访问远程数据库?
[问题点数:40分,结帖人Ring_Pt]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2009年3月 C++ Builder大版内专家分月排行榜第三2007年4月 C++ Builder大版内专家分月排行榜第三
相关帖子推荐:
2010年12月 移动平台大版内专家分月排行榜第二2010年11月 移动平台大版内专家分月排行榜第二
2011年5月 移动平台大版内专家分月排行榜第三2011年4月 移动平台大版内专家分月排行榜第三2011年3月 移动平台大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 android访问数据库 的文章

 

随机推荐