sprongboot mysql登录注册_后端开发:SpringBoot实现注册与登录功能
这次实现的注册与登录功能需要进行数据库的基本操作,而且是前后端分离式开发。总的来说就是首先进行数据库的设计,然后根据数据库进行编写服务端API接口,接着来到客户端或移动端,进行登录与注册的界面设计,接收服务端提供的数据并显示在界面上。本文章主要进行后端API接口设计。后面会进行前端框架数据交互设计。
一、数据库设计
根据一般登录与注册的需求,数据库的用户表结构如下:
二、服务端API接口设计
1、首先进行持久化映射,生成用户表的模型类
(1)、找到Persistence一栏,选中项目,鼠标右键,点击最底下一个选项。
(2)、选择模型类的位置,选中用户表的所有字段,点击OK。
(3)、找到生成的模型类Users,添加主键生成器。在注解@Id下方添加以下代码:
//指定生成器名称
@GeneratedValue(generator = "uuid2" )
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator" )
2、创建DAO层,新建接口类UsersDao。代码如下:
package edu.ynmd.cms.dao;
import edu.ynmd.cms.model.Users;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
public interface UsersDao extends JpaRepository {
@Query("select u from Users u where u.username=:username and u.pass=:pass")
List getUsersByUsernameAndPass(@Param("username")String username, @Param("pass") String pass);
}
3、编写server
(1)、ManageService里面进行增删查改方法的定义。
//用户表
Users saveUser(Users users);
boolean deleteUser(String id);
Users getUser(String id);
Users getUserByUserNameAndPass(String username,String pass);
(2)、MangeServiceImpl里面进行具体方法的实现。
//*****************************用户表增删查改开始*********************************
@Override
public Users saveUser(Users users) {
try {
return usersDao.save(users);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
public boolean deleteUser(String id) {
try {
usersDao.deleteById(id);
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
@Override
public Users getUser(String id) {
Optional temp=usersDao.findById(id);
return temp.isPresent()?temp.get():null;
}
@Override
public Users getUserByUserNameAndPass(String username, String pass) {
List ul=usersDao.getUsersByUsernameAndPass(username,pass);
if(ul.size()>0){
return ul.get(0);
}
return null;
}
4、来到PublicAction,编写API接口
//用户登录方法
@PostMapping("/login")
@ResponseBody
public HashMap login(
@RequestBody Account account) throws IOException {
Users u=manageService.getUserByUserNameAndPass(account.username,account.password); //获取用户表的用户名和密码
if(u!=null){
String jwt= JwtUtil.generateToken(u.getRoleid(),u.getUsersid()); //获取用户角色和用户ID
return new HashMap(){{
put("msg","ok");
put("token",jwt);
put("role",u.getRoleid());
// put("role","admin");
}};
}
else {
return new HashMap(){{
put("msg","error");
put("token","error");
}};
}
}
public static class Account{
public String username;
public String password;
}
//用户注册
@PostMapping("saveUser")
@ResponseBody
public HashMap saveUser(@RequestBody Users users) throws Exception{
HashMap m=new HashMap();
try {
users.setRoleid("member");
manageService.saveUser(users);
m.put("msg","ok");
} catch (Exception e) {
e.printStackTrace();
m.put("msg","error");
}
return m;
}
最后,启动项目进行测试。
三、使用postman进行注册与登录测试
1、postman注册测试
2、查看数据库内容,可以看到刚刚已经注册成功
3、postman登录测试
4、输入一个错误密码,测试能不能登录
到此,服务端API接口已经实现,后面会写关于客户端和移动端与API接口进行数据交互的文章,敬请期待!
sprongboot mysql登录注册_后端开发:SpringBoot实现注册与登录功能相关推荐
- java支付宝网页授权登录界面_支付宝开发平台之第三方授权登录与获取用户信息...
对于第三方登录,我们常见了,很多应用可以进行第三方登录,我常用的有:QQ.微信.新浪.支付宝等等,今天我们就一起来简单学习一下支付宝第三方授权登录. 打开支付宝开发平台,注册成为开发者,点击开发者中心 ...
- php 不同权限登录界面,PHP中如何实现不同权限进入不同页面_后端开发
PHP中怎么进行URL转发_后端开发 PHP中进行URL转发的方法:1.使用函数"file_get_contents()"将URL传入,该函数会将URL中的网页源代码进行获取,然后 ...
- php类实例化js,php中如何实例化一个类_后端开发
php实现字母数字混合验证码_后端开发 js中可以通过后缀加随机数[Math.random()]来实现刷新验证码,PHP验证传过来的参数code和当前session存储的验证码进行比较,若是正确返回1 ...
- php后端switch,详解PHP中php switch的方法实例_后端开发
php+javascript实现用户注册模块(附源码)_后端开发 在任何一个网站内都需要注册功能,本文讲述了利用html . javascript . ajax . php和MySQL实现简单的注册功 ...
- python判断某年是否为闰年_python如何判断某年是否是闰年_后端开发
如何基于Hyperf实现RabbitMQ+WebSocket消息推送_后端开发 基于 Hyperf+ WebSocket +RabbitMQ 实现的一个简单大屏幕的消息推送.利用 WebSocket ...
- php数组去掉键值,PHP 如何将数组去掉键值?_后端开发
如何用python计算圆周率?_后端开发 python计算圆周率的方法:首先在图像中随机抛置大量的点:然后计算落在1/4圆内的点的数量:最后计算pi值,代码为[for i in range(1,DAR ...
- 使用php下载网络图片有哪些方法,php下载网络图片常用的三个方法总结_后端开发...
php文件锁产生的问题和解决方案(一个真实案例)_后端开发 一个真实案例想起自己之前犯过一个相关的错误.当时场景是这样的:有一个微信公众号项目,调用微信公众号的接口都需要access_token,它的 ...
- c语言中 n的意义,\n\n在c语言中是什么意思?_后端开发
PHP如何结合MySQL进行千万级数据处理_后端开发 一张一亿的订单表,可以分成五张表,这样每张表就只有两千万数据,分担了原来一张表的压力,分表需要根据某个条件进行分,这里可以根据地区来分表,需要一个 ...
- medoo php 教程,PHP数据库框架Medoo1.6安装教程_后端开发
PHP如何删除一个路径下的所有文件夹和文件?_后端开发 PHP如何删除一个路径下的所有文件夹和文件?下面本篇文章给大家介绍一下PHP删除一个路径下的所有文件夹和文件的方法.有一定的参考价值,有需要的朋 ...
最新文章
- 所有配置_一张图看懂iPhone12的所有配置!
- sqlite3数据库教程
- linux环境下配置虚拟主机域名,Linux下三种虚拟主机的配置方法
- 工业以太网交换机品牌排行榜,国产工业交换机哪个品牌好?
- 机器学习经典算法之PCA主成分分析
- .net Core 介绍
- 农村大学生的出路或许是读个真才实学的博士
- schema在oracle里是什么意思
- 基于(LinuxC语言)的UDP局域网聊天室
- 无线摄像头接有线如何改协议_WiFi中继器——让无线传输更简单
- 阿里巴巴使命、愿景、价值观、绩效管理中的六大价值观、TAE 与 TOP、聚石塔、阿里云的差异化服务
- java的pdf转永中_永中PDF转Word,你值得拥有!
- Nginx代理百度地图,实现内网访问百度地图
- Global Round 16D2. Seating Arrangements (hard version)(模拟,贪心)
- 圣诞表白html,圣诞节表白,最浪漫的表白方式
- Spring+SpringMVC+MyBatis明日方舟版人员信息管理系统前端页面代码前后端交互+SSM框架 管理员登录 游客登录 普通用户登录 人员的增删改查 信息更新 图片上传 分页查询)
- 录音转文字电脑软件有哪些?录音如何转文字?
- Gradle慢需要6min 现在20s解决了。
- 推荐好友和共同好友sql
- 【一级讲解】不可思议唤来不可思议β——数学排列组合