要实现一个Spring Boot应用程序,前端使用HTML输入框输入学号,并根据输入的学号从数据库中查询对应的姓名、性别和年龄,可以按照以下步骤进行。提供一个简单的实现代码。
时间: 2024-09-06 14:07:45 浏览: 56
要实现一个Spring Boot应用程序,前端使用HTML输入学号,并根据输入的学号从数据库中查询对应的姓名、性别和年龄,可以按照以下步骤进行:
1. **项目搭建**:
- 使用Spring Initializr(https://start.spring.io/)来生成Spring Boot项目的基础结构,选择需要的依赖,比如`Spring Web`, `Spring Data JPA`, `Thymeleaf`, `H2 Database`等。
2. **配置文件**:
- 在`src/main/resources/application.properties`文件中配置数据库连接信息以及JPA的属性。
3. **实体类**:
- 创建一个学生实体类`Student`,映射数据库中的学生表,包含学号、姓名、性别和年龄属性,并使用`@Entity`注解。
4. **仓库接口**:
- 创建一个接口`StudentRepository`,继承`JpaRepository`,定义根据学号查询学生的方法。
5. **服务层**:
- 创建服务类`StudentService`,使用`@Service`注解,实现根据学号查询学生信息的业务逻辑。
6. **控制器**:
- 创建控制器类`StudentController`,使用`@Controller`注解,处理前端请求,并调用服务层方法。
7. **前端页面**:
- 使用Thymeleaf模板引擎创建HTML页面,输入学号,并显示查询结果。
下面是一个简单的实现代码示例:
**Student.java** (实体类)
```java
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "students")
public class Student {
@Id
private String studentId;
private String name;
private String gender;
private int age;
// Getters and setters...
}
```
**StudentRepository.java** (仓库接口)
```java
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface StudentRepository extends JpaRepository<Student, String> {
Student findByStudentId(String studentId);
}
```
**StudentService.java** (服务类)
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class StudentService {
@Autowired
private StudentRepository studentRepository;
public Student findStudentByStudentId(String studentId) {
return studentRepository.findByStudentId(studentId);
}
}
```
**StudentController.java** (控制器)
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping("/")
public String index(Model model, @RequestParam(name = "studentId", required = false) String studentId) {
Student student = null;
if (studentId != null) {
student = studentService.findStudentByStudentId(studentId);
}
model.addAttribute("student", student);
return "index";
}
}
```
**src/main/resources/templates/index.html** (Thymeleaf模板)
```html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>学生信息查询</title>
</head>
<body>
<form action="/" method="get">
学号:<input type="text" name="studentId"/>
<input type="submit" value="查询"/>
</form>
<div th:if="${student}">
<p>学号:[[${student.studentId}]]</p>
<p>姓名:[[${student.name}]]</p>
<p>性别:[[${student.gender}]]</p>
<p>年龄:[[${student.age}]]</p>
</div>
</body>
</html>
```
确保在`application.properties`中正确配置了数据库连接信息,并且数据库中有一个`students`表与`Student`实体类对应。
阅读全文