java web的mysql_Android+Java Web+MySQL实现登录注册

1 前言&概述

这篇文章是基于以下文章氷泠:Android通过Web与后台数据库交互​zhuanlan.zhihu.comzhihu-card-default.svg

的更新,更新了一些技术栈,更加贴近实际需要,以及修复了若干的错误。

这是一个前端Android+后端Java/Kotlin通过Servelt进行后台数据库(MySQL)交互的详细步骤以及源码实现,技术栈:Android基础

原生JDBC+原生Servlet

Tomcat+MySQL(Docker)

当然现在的很多Java后端开发都使用了Spring Boot而不是原生的Servlet,所以使用Spring Boot实现的可以笔者的另一篇文章。

尽管基于Spring Boot实现非常的简便,但是使用原生的Servlet更能理解底层的原理。另外本篇文章是偏基础向的教程,很多步骤都会比较详细而且附上了图,好了废话不说,正文开始。

2 环境Android Studio 4.1.2

IntelliJ IDEA 2020.3

MySQL 8.0.23

Tomcat 10.0

Docker 20.10.1

服务器CentOS 8.1.1911

3 环境准备

3.1 IDE准备

官网安装Android Studio+IDEA,这部分就省略了。

3.2 MySQL

3.2.1 安装概述

这里的MySQL若无特殊说明指的是MySQL Community。

首先,在Windows下,MySQL提供了exe安装包:

macOS下提供了dmg安装包:

可以戳这里下载。

Linux下一般来说MySQL安装有如下方式:软件包安装(apt/apt-get、yum、dnf、pacman等)

下载压缩包安装

源码编译安装

Docker安装

其中相对省事的安装方式为Docker安装以及软件包安装,其次是压缩包方式安装,特别不建议源码安装(当然如果喜欢挑战的话可以参考笔者的一篇编译安装8.0.19以及编译安装8.0.20)。

3.2.2 安装开始

这里笔者本地测试选择的是使用Docker安装,步骤可以查看这里。

另外对于服务器,也可以使用Docker安装,如果使用软件包安装的话,这里以笔者的CentOS8为例,其他系统的参考如下:

3.2.2.1 下载并安装

添加仓库:

sudo yum install https://repo.mysql.com/mysql80-community-release-el8-1.noarch.rpm

禁用默认MySQL模块(CentOS8中会包含一个默认的MySQL模块,不禁用的话没办法使用上面添加的仓库安装):

sudo yum module disable mysql

安装:

sudo yum install mysql-community-server

3.2.2.2 启动服务并查看初始化密码

启动服务:

systemctl start mysqld

查看临时密码:

sudo grep 'temporary password' /var/log/mysqld.log

输入临时密码登录:

mysql -u root -p

修改密码:

alter user 'root'@'localhost' identified by 'PASSWORD'

3.2.2.3 创建外部访问用户

不建议在Java中直接访问root用户,一般是新建一个对应权限的用户并进行访问,这里就为了方便就省略了。

3.3 Tomcat

3.3.1 本地Tomcat

Tomcat安装不难,直接从官网下载即可:

解压:

tar -zxvf apache-tomcat-10.0.0.tar.gz

进入bin目录运行startup.sh:

cd apache-tomcat-10.0.0/bin

./startup.sh

本地访问localhost:8080:

这样就算成功了。对于Windows的读者,可以戳这里下载,解压步骤类似,解压后运行startup.bat即可访问localhost:8080。

3.3.2 服务器Tomcat

服务器的话可以直接使用wget安装:

wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.0/bin/apache-tomcat-10.0.0.tar.gz

但是这样速度很慢,建议下载到本地再使用scp上传:

scp apache-tomcat-10.0.0.tar.gz username@xxx.xxx.xxx.xxx:/

一样按照上面的方法解压后运行startup.sh,访问公网IP:8080即可观察是否成功。

4 建库建表

4.1 用户表

这里使用到的MySQL脚本如下:

CREATE DATABASE userinfo;

USE userinfo;

CREATE TABLE user

(

id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,

name CHAR(30) NULL,

password CHAR(30) NULL

)

4.2 导入

mysql -u root -p < user.sql

5 后端部分

因为是比较基础向的教程,所以先从创建项目开始吧。

5.1 创建项目+导库

选择对应Java Enterprise,默认是选中了其中的Web application,构建工具默认Maven,测试工具JUnit,如果需要Gradle或Kotlin的话自行勾选即可:

2020.3版本的IDEA相比起以前,更加人性化的添加了选择库的功能,默认是选中了Servlet,需要其他库的话自行选择即可。

另外一个要注意的是JavaEE已经更名为JakartaEE,因此版本这里可以选择JakartaEE:

填上对应包名并选择位置:

创建完成后,这里笔者遇到了一个错误,找不到对应的Servlet包:

在设置中选择更新中心仓库即可:

创建后的目录如图所示:

接着添加依赖,用到的依赖包括:MySQL

Jackson

Lombok

添加到pom.xml中即可(注意版本,MySQL不同版本可以查看这里):

mysql

mysql-connector-java

8.0.23

org.projectlombok

lombok

1.18.16

provided

com.fasterxml.jackson.core

jackson-databind

2.12.1

这样第一步就完成了。

5.2 结构

项目结构如下:持久层操作:Dao

实体类:User

响应体:ResponseBody

Servlet层:SignIn/SignUp/Test

工具类:DBUtils

~~启动类~~:不需要,因为在Web服务器中运行

先创建好文件以及目录:

5.3 DBUtils

原生JDBC获取连接工具类:

package com.example.javawebdemo.utils;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

public class DBUtils {

private static Connection connection = null;

public static Connection getConnection() {

try {

Class.forName("c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值