广告
返回顶部
首页 > 资讯 > 数据库 >Android连接MySQL数据库的方法
  • 846
分享到

Android连接MySQL数据库的方法

mysql数据库android 2023-10-07 20:10:34 846人浏览 八月长安
摘要

由于之前那篇文章是在大学期间好多东西都不太懂的时候写的,放到现在再来看总感觉到处都是问题(或者说已经看不懂啦)。但是看到每天上涨的那点阅读量,想了想还是把这个再用相对正常的方式再重写一遍吧。 为了省事本项目的服务端采用SpringBoot

由于之前那篇文章是在大学期间好多东西都不太懂的时候写的,放到现在再来看总感觉到处都是问题(或者说已经看不懂啦)。但是看到每天上涨的那点阅读量,想了想还是把这个再用相对正常的方式再重写一遍吧。

为了省事本项目的服务端采用SpringBoot + mybatisPlus开发,要是Java水平还不够的小伙伴就自己再稍微努力努力 (°∀°)ノ


一、服务端

首先对springBoot提一嘴,这玩意是用来简化Spring应用的初始搭建以及开发过程的。

创建好工程之后在pom文件中导入相关依赖,用到的大概有Mysql、druid、mybatis。mybatis-plus、fastJSON、lombok等。

随后对配置信息进行设置,这里采用yml文件的格式。

server:  port: 80spring:  #数据库相关配置  datasource:    driver-class-name: com.mysql.cj.jdbc.Driver    url: jdbc:mysql://localhost:3306/db1?serverTimezone=UTC    username: root    passWord: 1234    #设置数据源为druid    type: com.alibaba.druid.pool.DruidDataSource  cache:    Redis:      time-to-live: 1800000mybatis-plus:  global-config:    db-config:      id-type: assign_id  configuration:    #在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射    map-underscore-to-camel-case: true    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

随后就是紧张刺激(并不)的代码开发啦。

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

先准备好MySQL中的数据:

对应好实体类中的User类:

@Datapublic class User {    private Integer id;    private String userId;    private String userName;    private String password;    private String phoneNumber;    private String sex;    private String personalSignature;}

由于使用了MybatisPlus,所以数据层会显的非常简单:

@Mapperpublic interface UserMapper extends BaseMapper {}

业务层接口:

public interface UserService extends IService {    Result login(String userId, String password);}

业务层实现:

@Servicepublic class UserServiceImpl extends ServiceImpl implements UserService {    @Autowired    private UserMapper userMapper;    @Override    public Result login(String userId, String password) {        // 1、校验参数        if (StringUtils.isBlank(userId) || StringUtils.isBlank(password)) {            return Result.error("请输入账号和密码");        }        // 2、构造查询条件        LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();        queryWrapper.eq(User::getUserId, userId);        queryWrapper.eq(User::getPassword, password);        User user = userMapper.selectOne(queryWrapper);        // 3、判断查询结果        if (user != null) {            return Result.success(user);        } else {            return Result.error("账号或密码错误");        }    }}

表现层:

@Slf4j@RestController@RequestMapping("/user")public class UserController {    @Autowired    private UserService userService;    @PostMapping("/login")    public Result login(@RequestBody Map userInfo) {        log.info("用户登录");        String userId = userInfo.get("userId");        String password = userInfo.get("password");        return userService.login(userId, password);    }}

其中的Result为通用的返回结果类,包含了状态码、错误信息以及返回数据等内容。

至此,服务端的开发就告一段落。运行启动类,进行调试。

二、Android端

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

对页面控件进行初始化完成后,给按钮添加一个点击事件:

btn_login.setOnClickListener(v -> {            String id = et_id.getText().toString();            String pwd = et_pwd.getText().toString();            // 判断用户输入账号和密码是否为空            if (StringUtil.isNotEmpty(id) && StringUtil.isNotEmpty(pwd)){                loginTest(id, pwd);            }else {                ToastUtil.showShort( LoginActivity.this, "请输入账号和密码");            }        });

具体实现思路是:使用OkHttp向服务端发送请求,将服务端返回的jsON数据用GSON进行解析,从而将在数据库中获取到的信息进行展示。具体实现如下:

private void loginTest(String id, String pwd) {        new Thread(() -> {            try {                // 创建OKHttp客户端                OkHttpClient client = new OkHttpClient();                // 构造消息体(不是JSON格式)                RequestBody requestBody = new FORMBody.Builder()                        .add("userId", id)                        .add("password", pwd)                        .build();                // 发送post请求                Request request = new Request.Builder()                        .url("http://server.natappfree.cc:39945/user/login")                        .post(requestBody)                        .build();                // 获取响应                Response response = client.newCall(request).execute();                String userInfo = response.body().string();                // 利用GSON将返回的JSON格式数据转化为对象                Gson gson = new Gson();                Result result = gson.fromJson(userInfo, Result.class);                // 判断返回结果,确认登录是否成功                if (result == null) {                    ToastUtil.showShortInThread(LoginActivity.this, "登录失败");                    return;                }                if (result.getCode() == 1 && result.getData() != null) {                    String userStr = result.getData().toString();                    User user = gson.fromJson(userStr, User.class);                    Intent intent = new Intent(LoginActivity.this, UserInfoActivity.class);                    intent.putExtra("User", user);                    startActivity(intent);                } else {                    ToastUtil.showShortInThread(LoginActivity.this, result.getMsg());                    return;                }            } catch (Exception e) {                e.printStackTrace();            }        }).start();    }

其中的请求地址使用了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中的代码:

@PostMapping("/login")public Result login(String userId, String password) {   log.info("用户登录");   return userService.login(userId, password);}

重启服务,后再次尝试登陆:

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

 

来源地址:https://blog.csdn.net/qq_41028407/article/details/129168925

您可能感兴趣的文档:

--结束END--

本文标题: Android连接MySQL数据库的方法

本文链接: https://www.lsjlt.com/news/424794.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android连接MySQL数据库的方法
    由于之前那篇文章是在大学期间好多东西都不太懂的时候写的,放到现在再来看总感觉到处都是问题(或者说已经看不懂啦)。但是看到每天上涨的那点阅读量,想了想还是把这个再用相对正常的方式再重写一遍吧。 为了省事本项目的服务端采用SpringBoot ...
    99+
    2023-10-07
    mysql 数据库 android
  • mysql连接数据库的方法
    小编给大家分享一下mysql连接数据库的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!连接方法:1、打开DOS窗口,进入目录...
    99+
    2022-10-18
  • vc 连接mysql数据库的方法
    这篇文章给大家分享的是有关vc 连接mysql数据库的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。vc连接mysql数据库的方法:首先打开VC6;然后在中间列表框中添加本地...
    99+
    2022-10-18
  • .net连接mysql数据库的方法
    小编给大家分享一下.net连接mysql数据库的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!net连接mysql数据库的方...
    99+
    2022-10-18
  • Nacicat连接MySQL数据库的方法
    Nacicat连接MySQL数据库的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!1、安装好MySQL和Navicat...
    99+
    2022-10-18
  • C#连接Mysql数据库的方法
    C#连接Mysql数据库的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!本文讲的是C#连接Mysql数据库,下文附有详...
    99+
    2022-10-18
  • php7连接mysql数据库的方法
    这篇文章主要为大家展示了php7连接mysql数据库的方法,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“php7连接mysql数据库的方法”这篇文章吧。php有什么用php是一个嵌套的缩写名称,指...
    99+
    2023-06-06
  • ASP连接MySQL数据库的方法(转)
    ASP连接MySQL数据库的方法(转)[@more@]<% '测试读取MySql数据库的内容strconnection="driver={mysql odbc 3.51 driver};database=w...
    99+
    2022-10-18
  • mysql登录数据库连接的方法
    这篇文章主要介绍了mysql登录数据库连接的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql登录数据库连接的方法:首先打开Workb...
    99+
    2022-10-18
  • android连接数据库的方法是什么
    Android连接数据库的方法有多种,最常用的方法是使用SQLite数据库。下面是使用SQLite数据库连接的步骤:1. 创建一个继...
    99+
    2023-08-28
    android 数据库
  • Android 连接MySql数据库步骤
    1.首先我们需要导入mysql驱动jar包下载地址:   在android studio的build.gradle中插入 dependencies { implementation 'mysql:mysql-connector-java:5...
    99+
    2023-09-18
    android 数据库 android studio
  • Android 连接 MySQL 数据库教程
    在 Android 应用程序中连接 MySQL 数据库可以帮助开发人员实现更丰富的数据管理功能。本教程将介绍如何在 Android 应用程序中使用低版本的 MySQL Connector/J 驱动程序来连接 MySQL 数据库。 步骤一:下...
    99+
    2023-09-02
    java 数据库 android
  • IDEA连接MySQL数据库的四种方法
    首先右击此电脑点击管理,进入页面  再服务栏确保MySQL是正常运行状态 打开IDEA, 左边栏选择Maven Archetype,新建一个名为javaweb的新工程 进行如图编辑完成新建  在Main包下新建一个java包,右击jav...
    99+
    2023-09-22
    mybatis
  • win7上python2.7连接mysql数据库的方法
    一:安装MySQL-python驱动 pip install mysql 二:连接到MySQL服务器的test数据库 #!/usr/bin/python # -*- coding: UTF...
    99+
    2022-06-04
    数据库 方法 mysql
  • django2.2版本连接mysql数据库的方法
    一、运行项目报错信息如下: File "/home/pyvip/.virtualenvs/myblog/lib/python3.6/site-packages/django/db/backends/my...
    99+
    2022-10-18
  • C#连接MySQL数据库的方法步骤
    目录一、需求二、新建 C# 项目三、MySQL数据库四、MySqlHelper五、测试总结一、需求 C# 使用 MySQL 数据库的情况还是比较少的,大部分使用 Windows 平台...
    99+
    2023-01-11
    c#连接mysql数据库配置 c连接mysql数据库 c#连接mysql数据库语法
  • Node连接mysql数据库方法介绍
    使用Node做Web开发,基本上都是使用NoSQL数据库,最频繁的就是使用MongoDB了,自己做了一些简单的Web开发,为了降低学习门槛,一直使用MySQL来做数据库。这里简单介绍一下连接MySQL数据库...
    99+
    2022-06-04
    数据库 方法 Node
  • mysql连接数据库并测试的方式方法
    这篇文章主要介绍mysql连接数据库并测试的方式方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.通过maven导入关于mybatis的jar包可以通过阿里云的maven库直接下...
    99+
    2022-10-18
  • asp连接mysql数据库的方法是什么
    在ASP中连接MySQL数据库有多种方法,以下是常见的两种方法:1. 使用ADODB连接对象(ActiveX Data Object...
    99+
    2023-10-08
    asp mysql数据库
  • JSP连接MySql数据库的方法是什么
    这篇“JSP连接MySql数据库的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JSP连接MySql数据库的方法是...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作