springboot实现课程表的增删改查
时间: 2023-05-31 09:19:15 浏览: 250
springboot+mybatis+mysql+jsp实现用户登陆、增删改查(高分课程设计)
### 回答1:
Spring Boot可以通过使用Spring Data JPA和MySQL数据库来实现课程表的增删改查功能。
1. 增加课程:使用POST请求将课程信息作为JSON对象发送到服务器。在服务器端,使用Spring Data JPA将课程信息保存到MySQL数据库中。
2. 删除课程:使用DELETE请求将要删除的课程的ID发送到服务器。在服务器端,使用Spring Data JPA从MySQL数据库中删除该课程。
3. 修改课程:使用PUT请求将要修改的课程的ID和新的课程信息发送到服务器。在服务器端,使用Spring Data JPA从MySQL数据库中找到该课程并更新其信息。
4. 查询课程:使用GET请求从服务器获取所有课程的信息。在服务器端,使用Spring Data JPA从MySQL数据库中获取所有课程的信息,并将其作为JSON对象返回给客户端。
以上就是使用Spring Boot实现课程表的增删改查的基本流程。
### 回答2:
Spring Boot是一款基于Spring框架的快速开发利器,它极大地简化了开发流程,同时也提供了一系列的开发组件,包括数据库、ORM框架等,使得开发更加高效、便捷。课程表是一种常见的信息管理需求,利用SpringBoot实现课程表的增删改查是一件非常容易的事情。
一、环境准备
在开始实现之前,我们需要先准备好开发所需的环境:
1. JDK
2. Spring Boot
3. MySQL
4. Maven
二、创建数据库
我们首先需要创建一个数据库用于存储课程表的相关信息,包括课程名称、上课时间、授课教师等。这里我们可以使用MySQL数据库,创建一个名为“course”的数据库,并在其中创建一个名为“course_info”的数据表。
CREATE DATABASE course;
USE course;
CREATE TABLE course_info (
id INT(11) PRIMARY KEY AUTO_INCREMENT,
course_name VARCHAR(255),
teacher_name VARCHAR(255),
classroom VARCHAR(255),
start_time TIME,
end_time TIME
);
三、创建Spring Boot项目
1. 创建Maven项目
在Eclipse或IntelliJ IDEA中,我们可以选择创建一个Maven项目。创建完毕后,我们需要在pom.xml文件中导入所需的依赖项:
2. 新建course_info实体类
在src/main/java/com.example.demo.entity目录下新建CourseInfo实体类,用于描述课程的详情信息,代码如下:
package com.example.demo.entity;
import java.sql.Time;
public class CourseInfo {
private int id;
private String courseName;
private String teacherName;
private String classroom;
private Time startTime;
private Time endTime;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public String getTeacherName() {
return teacherName;
}
public void setTeacherName(String teacherName) {
this.teacherName = teacherName;
}
public String getClassroom() {
return classroom;
}
public void setClassroom(String classroom) {
this.classroom = classroom;
}
public Time getStartTime() {
return startTime;
}
public void setStartTime(Time startTime) {
this.startTime = startTime;
}
public Time getEndTime() {
return endTime;
}
public void setEndTime(Time endTime) {
this.endTime = endTime;
}
}
3. 新建CourseRepository接口
在src/main/java/com.example.demo.repository目录下新建CourseRepository接口,用于定义课程表的增删改查方法:
package com.example.demo.repository;
import java.util.List;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import com.example.demo.entity.CourseInfo;
public interface CourseRepository extends CrudRepository<CourseInfo, Integer>{
// 查询全部课程信息
List<CourseInfo> findAll();
// 根据课程ID查询对应课程信息
CourseInfo findById(int id);
// 插入一条新的课程信息
CourseInfo save(CourseInfo courseInfo);
// 根据课程ID删除对应的课程信息
@Modifying
@Query("delete from CourseInfo where id = ?1")
void deleteById(int id);
}
4. 新建CourseService服务类
在src/main/java/com.example.demo.service目录下新建CourseService服务类,用于编写课程表的增删改查方法:
package com.example.demo.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.demo.entity.CourseInfo;
import com.example.demo.repository.CourseRepository;
@Service
public class CourseService {
@Autowired
private CourseRepository courseRepository;
public List<CourseInfo> getAllCourse() {
return courseRepository.findAll();
}
public CourseInfo getCourseById(int id) {
return courseRepository.findById(id);
}
public CourseInfo addNewCourse(CourseInfo courseInfo) {
return courseRepository.save(courseInfo);
}
public void deleteCourseById(int id) {
courseRepository.deleteById(id);
}
}
5. 新建CourseController控制器类
在src/main/java/com.example.demo.controller目录下新建CourseController控制器类,用于处理前端请求,实现增删改查功能:
package com.example.demo.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.entity.CourseInfo;
import com.example.demo.service.CourseService;
@RestController
@RequestMapping("/course")
public class CourseController {
@Autowired
private CourseService courseService;
@GetMapping("/all")
public List<CourseInfo> getAllCourse() {
return courseService.getAllCourse();
}
@GetMapping("/{id}")
public CourseInfo getCourseById(@PathVariable("id") int id) {
return courseService.getCourseById(id);
}
@PostMapping("/add")
public CourseInfo addNewCourse(@RequestBody CourseInfo courseInfo) {
return courseService.addNewCourse(courseInfo);
}
@DeleteMapping("/{id}")
public void deleteCourseById(@PathVariable("id") int id) {
courseService.deleteCourseById(id);
}
}
四、测试
创建完相关的类、接口和方法之后,我们可以通过Postman等API测试工具来测试,验证我们的功能是否实现。
1. 查询课程表信息
我们可以发送一个GET请求到http://localhost:8080/course/all,来获取全部的课程表信息。
2. 查询某一课程信息
我们可以发送一个GET请求到http://localhost:8080/course/1,来查询ID为1的课程详情。
3. 添加新的课程表信息
我们可以发送一个POST请求到http://localhost:8080/course/add,来新增一个课程表信息,如下所示:
4. 删除某一课程表信息
我们可以发送一个DELETE请求到http://localhost:8080/course/1,来删除ID为1的课程表信息。
以上就是利用SpringBoot实现课程表的增删改查的方法,除了上述功能,我们还可以进行其他相关操作,比如修改课程信息等等。在实际应用中,我们可以将这些业务逻辑作为服务端接口,供前端或其他应用程序调用,从而对课程表信息进行管理。
### 回答3:
SpringBoot是一种基于Spring Framework的快速开发框架,用于构建独立的、生产级别的基于Spring的应用程序,并且可以提高开发人员的效率。在本文中,我们将探讨如何使用SpringBoot框架实现课程表的增删改查。
1. 构建数据库表结构
首先,我们需要使用关系数据库来存储课程表相关数据。我们可以使用MySQL,Mariadb等关系数据库。之后就需要设计数据库表结构,包括课程表、学生、教师等相关项。例如,课程表表结构可以如下:
CREATE TABLE `course_table` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`course_name` varchar(255) NOT NULL,
`teacher_name` varchar(255) NOT NULL,
`classroom` varchar(255) NOT NULL,
`start_time` datetime NOT NULL,
`end_time` datetime NOT NULL,
`week_day` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. 创建SpringBoot项目
在Eclipse或者IntelliJ IDEA等IDE中创建一个SpringBoot项目。可以使用SpringInitializr来快速创建一个SpringBoot项目。在pom.xml文件中添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
其中,spring-boot-starter-web为构建Web应用所需的依赖,spring-boot-starter-data-jpa为构建数据库应用所需的依赖。
3. 配置数据库连接
在application.yml中配置数据库连接信息,包括连接地址、用户名、密码等:
spring:
datasource:
url: jdbc:mysql://localhost:3306/course_table?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
4. 创建实体类
在src/main/java目录下创建Entitiy实体类,例如CourseTable.java,我们可以使用JPA注解来映射关系数据库中的表结构,如下所示:
@Entity
@Table(name = "course_table")
public class CourseTable implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false, length = 50)
private String courseName;
@Column(nullable = false, length = 50)
private String teacherName;
@Column(nullable = false, length = 50)
private String classroom;
@Temporal(TemporalType.TIMESTAMP)
@Column(nullable = false)
private Date startTime;
@Temporal(TemporalType.TIMESTAMP)
@Column(nullable = false)
private Date endTime;
@Column(nullable = false)
private int weekDay;
// getter and setter
}
注:@Id注解表示是主键,@GeneratedValue表示自动生成主键,@Column表示映射数据库表中字段属性,@Temporal表示将字段映射为时间字段,@PrePersist表示在实体插入数据库前执行的操作。
5. 创建DAO接口
在src/main/java目录下创建CourseTableRepository接口,该接口继承JpaRepository接口,使用JPA规范提供了诸如增删查改等数据库操作方法,例如:
@Repository
public interface CourseTableRepository extends JpaRepository<CourseTable, Long> {
CourseTable findByCourseName(String courseName);
List<CourseTable> findByTeacherName(String teacherName);
List<CourseTable> findByWeekDay(int weekDay);
List<CourseTable> findByStartTimeBetween(Date startTime, Date endTime);
}
注:@Repository表示该类为一个DAO组件,@Autowired可以自动注入。
6. 创建Controller
在src/main/java目录下创建CourseTableController类,使用@RestController注解可以将该类定义为Restful API控制器。
@RestController
@RequestMapping("/courseTable")
public class CourseTableController {
@Autowired
private CourseTableRepository courseTableRepository;
@PostMapping("/add")
public CourseTable addCourseTable(@RequestBody CourseTable courseTable) {
return courseTableRepository.save(courseTable);
}
@GetMapping("/{id}")
public CourseTable getCourseTableById(@PathVariable("id") Long id) {
return courseTableRepository.findById(id).get();
}
@PutMapping("/update")
public CourseTable updateCourseTable(@RequestBody CourseTable courseTable) {
return courseTableRepository.save(courseTable);
}
@DeleteMapping("/{id}")
public void deleteCourseTable(@PathVariable("id") Long id) {
courseTableRepository.deleteById(id);
}
@GetMapping("/findAll")
public List<CourseTable> findAll() {
return courseTableRepository.findAll();
}
}
注:@PostMapping表示处理HTTP POST请求,@GetMapping表示处理HTTP GET请求,@PutMapping表示处理HTTP PUT请求,@DeleteMapping表示处理HTTP DELETE请求,PathVariable注解表示URL中的参数,@RequestBody表示请求体中的JSON格式数据,@Autowired表示自动注入。
7. 测试
在浏览器或者Postman等HTTP客户端中输入相应的URL和参数,可以进行课程表的增删改查操作。
示例URL:
添加课程表:http://localhost:8080/courseTable/add
查找课程表ByID:http://localhost:8080/courseTable/1
更新课程表:http://localhost:8080/courseTable/update
删除课程表:http://localhost:8080/courseTable/1
查找所有课程表:http://localhost:8080/courseTable/findAll
以上就是使用SpringBoot框架实现课程表的增删改查全部步骤。
阅读全文