Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

Application类

1. 概述

Application 类是一个Spring Boot应用的入口类,通过 @SpringBootApplication 注解标记,用于启动和初始化整个应用程序。同时,该类使用 @MapperScan 注解扫描指定的包路径,以自动发现和注册MyBatis的Mapper接口。

2. 主要功能

Application 类主要完成以下功能:

  • 初始化和启动Spring Boot应用程序。
  • 自动扫描并注册MyBatis的Mapper接口。
  • 提供 main 方法,用于执行应用程序的入口逻辑。

3. 使用方法

3.1. 导入项目

在项目的源代码中,导入 Application.java 文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package org.example;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication//通过这个类,就可以把这个类标志成启动类
@MapperScan("org.example.mapper")//扫描mapper包
public class Application {

public static void main(String[] args) {
SpringApplication.run(Application.class, args);//这个类的class对象
}
}

3.2. 注解说明

  • @SpringBootApplication: 该注解标识了一个Spring Boot应用的启动类。它会自动启用Spring Boot的自动配置,并扫描同级包及其子包下的组件。
  • @MapperScan("org.example.mapper"): 该注解用于扫描指定的包路径,自动发现和注册MyBatis的Mapper接口。

3.3. 启动应用程序

运行 main 方法,即可启动Spring Boot应用程序。

Controller类

1. 概述

Controller 类是一个Spring Boot中的REST控制器,用于处理来自前端的HTTP请求并与数据库交互。通过各种不同的请求映射方法,它实现了学生信息的增、删、改、查操作,以及用户登录和注册功能。

2. 主要功能

Controller 类主要完成以下功能:

  • 获取学生信息列表并返回给前端。
  • 插入新的学生信息到数据库。
  • 根据学生ID删除数据库中的学生信息。
  • 根据学生ID更新数据库中的学生信息。
  • 用户登录验证,返回结果表示登录成功或失败。
  • 用户注册,将用户信息插入数据库。

3. 使用方法

3.1. 导入项目

在项目的源代码中,导入 Controller.java 文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package org.example;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.gson.Gson;
import org.example.mapper.StudentMapper;
import org.example.mapper.UserMapper;
import org.example.pojo.Student;
import org.example.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@SuppressWarnings("all") // 去除所有警告
@CrossOrigin(origins = {"*", "null"}) // * 表示任何地方发过来的请求都能响应,解决跨域问题
@RestController // 标志这个文件是一个 controller 类
public class Controller {

@Autowired // 自动连接,通过实体类去连接数据库
private StudentMapper studentMapper; // 创建一个 StudentMapper 去定义 studentMapper 属性
@Autowired
private UserMapper userMapper;

private Gson gson = new Gson(); // 将查出来的数据转为字符串

// 获取所有学生信息列表并返回给前端
@GetMapping("/students") // 在 8080/students 页面下会执行下边的函数
public String getStudents() {
List<Student> students = studentMapper.selectList(null);
return gson.toJson(students); // 把数据转成字符串后的列表返回给前端
}

// 插入新的学生信息到数据库
@PostMapping("/insert")
public void insertStudent(@RequestBody Student student) {
studentMapper.insert(student);
}

// 根据学生ID删除数据库中的学生信息
@PostMapping("/delete")
public void deleteStudent(@RequestBody Student student) {
studentMapper.deleteById(student.getId());
}

// 根据学生ID更新数据库中的学生信息
@PostMapping("/update")
public void updateStudent(@RequestBody Student student) {
studentMapper.updateById(student);
}

// 用户登录验证,返回结果表示登录成功或失败
@PostMapping("/login")
public String loginStudent(@RequestBody User user) {
QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
userQueryWrapper.setEntity(user);
User userSelected = userMapper.selectOne(userQueryWrapper);
if (userSelected == null) {
return "0"; // 登录失败,返回 "0"
}
return "1"; // 登录成功,返回 "1"
}
// 用户注册,将用户信息插入数据库
@PostMapping("/register")
public void register(@RequestBody User user) {
userMapper.insert(user);
}
}

//写的方法看着没错如果实现不了还没有报错,有可能是没有用autowird,没有注入他的mapper。所以在实际使用中,确保 StudentMapper 和 UserMapper 被正确注入,否则会导致无法正常连接数据库。

3.2. 注解说明

  • @CrossOrigin(origins = {"*", "null"}): 该注解解决跨域问题,允许任何来源的请求访问。
  • @RestController: 标识该类为一个控制器类,处理HTTP请求并返回REST响应。
  • @Autowired: 自动连接到其他Spring管理的Bean。

3.3. API说明

以下是 Controller 类中定义的API方法及其功能:

  • GET /students: 获取所有学生信息列表。
  • POST /insert: 插入新的学生信息到数据库。
  • POST /delete: 根据学生ID删除数据库中的学生信息。
  • POST /update: 根据学生ID更新数据库中的学生信息。
  • POST /login: 用户登录验证,返回结果表示登录成功或失败。
  • POST /register: 用户注册,将用户信息插入数据库。

评论