这一篇的主要内容是引入数据库并实现通过数据库验证用户名与密码。
本篇目录
- 一、引入数据库
-
- 1.安装数据库
- 2.使用 Navicat 创建数据库与表
- 二、使用数据库验证登录
-
- 1.项目相关配置
- 2.登录控制器
-
- User 类
- UserDAO
- UserService
- LoginController
- 3.测试
一、引入数据库
之前说过数据库的采用是 MySQL,算是比较主流的选择,从性能和体量等方面都比较优秀,当然也有一些弊端,但数据库不是我们这里讨论的重点,暂时能用就行。
1.安装数据库
我的 MySQL 版本是 5.7,官方下载页面是
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
安装教程我随便搜了一篇,可以参考
https://blog.csdn.net/ma524654165/article/details/77855431
目前最新的版本是 8.0,也可以下载最新版本,使用最新版本需要做三处修改:
一、修改后端项目 的 mysql 依赖配置
二、为数据库设置一个长密码,而不能用简单的 等
三、修改 mysql 的时区为 +8:00
操作 MySQL 有很多种方式,可以用官方的 Command Line Client、Workbench,也可以用其它的一些界面化软件,比如 Navicat 等。如果之前没有接触过数据库,可以先用 Navicat,比较直观。安装方法参照这个博文:
https://blog.csdn.net/wypersist/article/details/79834490
我真是个好人啊,到处推荐别人的文章。。。
2.使用 Navicat 创建数据库与表
下面的内容主要针对初次使用数据库的读者,有经验的读者可以直接执行下面的 sql 语句,记得先新建一个数据库,名称最好叫 white_jotter,方便以后的配置。
按照上面贴出来的教程安装完 MySQL 和 Navicat 后,打开 Navicat,点击连接 -> MySQL,新建数据库连接
双击在左侧出现的连接 WJ,就打开了这个连接。安装完 MySQL 会有几个默认的数据库,这些不要动,我们在连接(即 WJ)上右键新建一个数据库,命名为 white_jotter,字符集选择 UTF-8,排序规则选择 utf8_general_ci 即可。
箭头指向的地方不要漏了。最后那把小钥匙的意思是主键,可以点击上面的主键按钮或者直接点击这个空白的栏位设置。
然后再添加第二、三个栏位,配置如下:
最后点击保存,把表命名为 user,这样我们就有了第一张表。之后也可以在对象界面中选中表并点击“设计表”按钮重新设计。
接下来,我们双击 user 表,进入表中,添加一行用户信息,id 为 1,账号是 admin,密码是 123,也可以随便按照自己喜好添加。
可以看到下面自动执行了一条 SQL 语句。这里多说一句,真实的项目中,用户信息可不能这么存,直接把账号密码写上去太危险了,一般的做法是存储密码等信息的 hash 值。
OK,到现在为止,数据库的操作就完成了。
二、使用数据库验证登录
上一篇中我们直接在后端的控制器中用如下语句判断了用户名和密码的正确性:
使用数据库验证的逻辑其实也类似,大概是如下过程:
第一步,获得前端发送过来的用户名和密码信息
第二步,查询数据库中是否存在相同的一对用户名和密码
第三步,如果存在,返回成功代码(200),如果不存在,返回失败代码(400)
这里的语句很简单,但在修改之前还需要一些准备工作。
1.项目相关配置
打开我们的后端项目 ,首先修改 ,配置我们需要的依赖。为了方便以后的开发,我直接把我的配置粘贴上来,大家可以把原来的所有配置删除掉,再粘贴我的。
project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> modelVersion>4.0.0modelVersion> groupId>com.evangroupId> artifactId>wjartifactId> version>0.0.1-SNAPSHOTversion> name>wjname> description>White Jotter - Your Mind Palacedescription> packaging>warpackaging> parent> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-parentartifactId> version>2.1.1.RELEASEversion> relativePath/> parent> dependencies> dependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-webartifactId> dependency> dependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-tomcatartifactId> scope>providedscope> dependency> dependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-devtoolsartifactId> optional>trueoptional> dependency> dependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-data-jpaartifactId> dependency> dependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-data-redisartifactId> dependency> dependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-testartifactId> scope>testscope> dependency> dependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-thymeleafartifactId> dependency> dependency> groupId>org.springframework.bootgroupId> artifactId>spring-boot-starter-data-elasticsearchartifactId> dependency> dependency> groupId>com.sun.jnagroupId> artifactId>jnaartifactId> version>3.0.9version> dependency> dependency> groupId>net.sourceforge.nekohtmlgroupId> artifactId>nekohtmlartifactId> version>1.9.22version> dependency> dependency> groupId>junitgroupId> artifactId>junitartifactId> version>4.12version> scope>testscope> dependency> dependency> groupId>org.apache.tomcat.embedgroupId> artifactId>tomcat-embed-jasperartifactId> version>8.5.23version> dependency> dependency> groupId>mysqlgroupId来源:Evan-Nightly
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!