欢迎光临散文网 会员登陆 & 注册

Android连接MySQL数据库的方法以及可能会遇到的一些问题

2021-06-04 00:30 作者:繪木木丶  | 我要投稿

由于在毕业设计中需要用到Android访问MySQL数据库,便有了以下这篇文章。

Android连接数据库一般有两种方法:

(1)通过服务器连接,利用服务器对数据库进行增删改查等操作,这是最常用的方式。学有余力的小伙伴可以去查阅《Android和PHP开发最佳实践》这本书,它以一个完整的微博应用项目实例为主线,由浅入深地讲解了Android客户端开发和PHP服务端开发的思路和技巧。介于本人是一个Tomcat和PHP都不会的废物,因此放弃了这种方式,采取了另一种方式;

咳咳,以上都是过去式啦,最新文章可以到置顶评论去看呐。另外,代码也在Gitee上开源了,同样到评论区领取哦。

(2)在Android内部直接访问MySQL数据库。这种方式非常耗手机内存,而且容易被反编译造成安全隐患,所以在实际项目中不推荐使用。本文将介绍直接访问的方法以及一些可能会遇到的问题。

一、准备

想要在Android工程中实现直接连接MySQL的话需要先导入jar包。在main文件夹下新建一个名为libs的文件夹,将jar包添加到里面。jar包在百度网盘中分享了,有需要的小伙伴可以私聊up获取。

添加好之后右击,选择Add As Library…

之后在build.gradle文件中会出现:

这就说明依赖已经导入成功了。

一定要记得在权限列表AndroidMainfest.xml中添加请求访问网络的权限

接下来就可以开心的访问数据库了

定义DbUtil类来进行数据库的访问

简单的写一个布局用来进行数据库访问的测试

跟之前java开发一样,在活动中写一个方法来进行数据库的访问

这是错的!!!

运行程序,在EditText中输入数据库中的设置好的账号和密码,点击登录

数据库中的信息

然后,果不其然的。。。失败了。。。

报了一个错"com.mysqljdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server."大概意思是数据库连接驱动版本太低,要我提高MySQL数据库连接驱动的版本。

但是据了解Android直接访问数据库最高只能使用MySQL 5.+版本,换成MySQL 8.+后会出现更奇怪的错误。

想了好久,终于意识到访问数据库是一个耗时操作,直接放在主线程中跑肯定会出问题。

于是便有了一下版本,将数据库访问放到一个子线程中,使用handler通知主线程更新UI

运行程序,在EditText中输入数据库中的设置好的账号和密码,点击登录

访问成功,ヾ(✿゚▽゚)ノ撒花

上面字DbUtil类中讲到电脑和手机必须连接相同的网络,这样才能进行数据库的访问。但是很明显这种方法非常不方便。

在这里up推荐一个叫NATAPP的内网穿透工具(不是广告),NATAPP是连接内外网的桥梁,客户端连接NATAPP后,便可在本地运行的服务器与公网之间建立起一个安全的隧道。在进行Android开发时,可以使手机APP直接与PC电脑通信,做到实时本地开发调试。

获取一个隧道,一般免费的就行,如果嫌麻烦可以整一个付费的。选择TCP协议,本地端口映射到MySQL的3306。

在下载好的natapp文件夹中新建config.ini文件,内容配置如下图

config.ini文件

authtoken改成自己的就行,然后运行natapp.exe。

将原本的ip地址和端口换成natapp分配的网址和自己设置的端口,运行程序,就可以在任何网络下进行数据库的访问了。

Android连接MySQL数据库的方法以及可能会遇到的一些问题的评论 (共 条)

分享到微博请遵守国家法律