请在idea上spring boot项目里写一个后端的用户登录注册的事例接口,写出完整的每一部分的代码写上标注用户表里有俩个类型怎么写俩个类型的人登录/注册用户表 create table user(uno int(10) primary key,uname varchar(20),upass varchar(20),type int(2));type=1为学生 type=2为管理员
时间: 2024-03-08 07:49:17 浏览: 66
用户登录注册实例
好的,下面是一个简单的 Spring Boot 后端应用程序,提供用户登录和注册接口。并包含了用户表的创建和数据插入。
首先,需要在 pom.xml 文件中添加必要的依赖项,包括 Spring Boot Web、MyBatis 和 MySQL 数据库驱动程序。以下是 pom.xml 文件的内容:
```xml
<dependencies>
<!-- Spring Boot Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<!-- MySQL 数据库驱动程序 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
</dependencies>
```
接下来,需要创建一个 User 实体类,用于映射用户表中的数据。以下是 User 类的代码:
```java
public class User {
private Integer uno;
private String uname;
private String upass;
private Integer type;
// Getter 和 Setter 方法
}
```
然后,需要创建一个 UserDao 接口,用于定义用户数据访问方法。以下是 UserDao 接口的代码:
```java
@Mapper
public interface UserDao {
/**
* 新增用户
*
* @param user 用户信息
* @return 影响的行数
*/
int addUser(User user);
/**
* 根据用户名查询用户信息
*
* @param uname 用户名
* @return 用户信息
*/
User getUserByName(String uname);
}
```
接下来,需要创建一个 UserService 接口,用于定义用户相关操作的业务逻辑。以下是 UserService 接口的代码:
```java
public interface UserService {
/**
* 用户注册
*
* @param user 用户信息
* @return 注册结果
*/
boolean register(User user);
/**
* 用户登录
*
* @param uname 用户名
* @param upass 密码
* @param type 用户类型
* @return 登录结果
*/
boolean login(String uname, String upass, Integer type);
}
```
然后,需要创建一个 UserServiceImpl 类,实现 UserService 接口中的方法。以下是 UserServiceImpl 类的代码:
```java
@Service
public class UserServiceImpl implements UserService {
private final UserDao userDao;
@Autowired
public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}
@Override
public boolean register(User user) {
// 根据用户名查询用户信息
User existUser = userDao.getUserByName(user.getUname());
// 如果用户已存在,则返回注册失败
if (existUser != null) {
return false;
}
// 新增用户
int rows = userDao.addUser(user);
// 如果新增用户失败,则返回注册失败
if (rows != 1) {
return false;
}
// 注册成功
return true;
}
@Override
public boolean login(String uname, String upass, Integer type) {
// 根据用户名查询用户信息
User user = userDao.getUserByName(uname);
// 如果用户不存在,则返回登录失败
if (user == null) {
return false;
}
// 如果密码不正确,则返回登录失败
if (!upass.equals(user.getUpass())) {
return false;
}
// 如果用户类型不正确,则返回登录失败
if (!type.equals(user.getType())) {
return false;
}
// 登录成功
return true;
}
}
```
最后,需要创建一个 UserController 类,用于定义用户相关接口。以下是 UserController 类的代码:
```java
@RestController
@RequestMapping("/users")
public class UserController {
private final UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
/**
* 用户注册接口
*
* @param user 用户信息
* @return 注册结果
*/
@PostMapping("/register")
public boolean register(@RequestBody User user) {
return userService.register(user);
}
/**
* 用户登录接口
*
* @param uname 用户名
* @param upass 密码
* @param type 用户类型
* @return 登录结果
*/
@GetMapping("/login")
public boolean login(@RequestParam String uname, @RequestParam String upass, @RequestParam Integer type) {
return userService.login(uname, upass, type);
}
}
```
在以上代码中,我们使用了 @Mapper、@Service 和 @RestController 注解来标识 UserDao、UserServiceImpl 和 UserController 类,分别表示 MyBatis 的数据访问对象、用户相关操作的业务逻辑和用户相关接口。在 UserController 类中,我们使用了 @PostMapping 和 @GetMapping 注解来定义用户注册和登录接口,分别表示 HTTP POST 和 GET 请求。
最后,我们需要创建一个数据库,并创建 user 表,包括编号、用户名、密码和类型字段。以下是创建 user 表的 SQL 语句:
```sql
CREATE TABLE user (
uno INT(10) PRIMARY KEY,
uname VARCHAR(20),
upass VARCHAR(20),
type INT(2)
);
```
在以上 SQL 语句中,我们使用了 INT 和 VARCHAR 数据类型,分别表示整数和字符串,长度分别为 10 和 20。uno 字段是主键,type 字段表示用户类型,可以设置为 1 或 2,分别表示学生和管理员。
阅读全文