Android连接MySQL数据库的方法

由于之前那篇文章是在大学期间好多东西都不太懂的时候写的,放到现在再来看总感觉到处都是问题(或者说已经看不懂啦)。但是看到每天上涨的那点阅读量,想了想还是把这个再用相对正常的方式再重写一遍吧。
为了省事本项目的服务端采用SpringBoot + MybatisPlus开发,要是Java水平还不够的小伙伴就自己再稍微努力努力 (°∀°)ノ

一、服务端
首先对SpringBoot提一嘴,这玩意是用来简化Spring应用的初始搭建以及开发过程的。
创建好工程之后在pom文件中导入相关依赖,用到的大概有mysql、druid、mybatis。mybatis-plus、fastjson、lombok等。
随后对配置信息进行设置,这里采用yml文件的格式。
随后就是紧张刺激(并不)的代码开发啦。

由于本项目只是为了实现Android访问MySQL数据库,就只是模拟实现了一个用户登录功能。
先准备好MySQL中的数据:

对应好实体类中的User类:
由于使用了MybatisPlus,所以数据层会显的非常简单:
业务层接口:
业务层实现:
表现层:
其中的Result为通用的返回结果类,包含了状态码、错误信息以及返回数据等内容。
至此,服务端的开发就告一段落。运行启动类,进行调试。

二、Android端
创建完工程后简单的写两个页面,一个用于登录,一个用于展示信息。


对页面控件进行初始化完成后,给按钮添加一个点击事件:
具体实现思路是:使用OkHttp向服务端发送请求,将服务端返回的JSON数据用GSON进行解析,从而将在数据库中获取到的信息进行展示。具体实现如下:
其中的请求地址使用了NATAPP内网穿透工具将本地的端口进行映射,使得外网也可以访问。(免费隧道每次启动时地址会发生变化)

启动项目:

输入正确的账号密码信息,点击登录,并没有反应。检查服务器后发现报了一个异常:
2023-02-22 17:42:58.922 WARN 9424 --- [p-nio-80-exec-5] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported]
经排查发现,在服务端接收参数时使用了@RequestBody注解,表示我们接收的是一个JSON格式的数据,但是OkHttp发送的数据并不是JSON数据,因此在这里报了异常。那么只要在接收参数时直接用两个变量接收即可解决这个问题,修改UserController中的代码:
重启服务,后再次尝试登陆:

访问成功,撒花✿ヽ(°▽°)ノ✿