javaweb中创建maven项目,运用springboot框架完成食堂菜品投票功能
时间: 2023-07-10 19:10:47 浏览: 114
基于Maven骨架创建JavaWeb项目过程解析
好的,下面是创建 Maven 项目并使用 Spring Boot 完成食堂菜品投票功能的步骤:
1. 使用 Maven 创建项目
首先,使用 Maven 创建一个新项目。在 Eclipse 中,可以通过以下步骤进行操作:
- 点击菜单栏中的 "File" -> "New" -> "Other"
- 在弹出的 "New" 窗口中选择 "Maven" -> "Maven Project"
- 在 "New Maven Project" 窗口中,选择 "Create a simple project",然后点击 "Next"
- 在 "New Maven Project" 窗口中,填写 "Group Id"、"Artifact Id" 和 "Version",然后点击 "Finish"
2. 导入 Spring Boot 依赖
在 Maven 项目中使用 Spring Boot,需要在 `pom.xml` 文件中添加 Spring Boot 依赖。以下是一个示例的 `pom.xml` 文件:
```
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>food-vote</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<java.version>1.8</java.version>
<spring-boot.version>2.3.2.RELEASE</spring-boot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
</plugin>
</plugins>
</build>
</project>
```
在这个 `pom.xml` 文件中,我们添加了 `spring-boot-starter-web` 和 `spring-boot-starter-data-jpa` 依赖,分别用于构建 Web 应用程序和访问数据库。同时,我们也添加了 `h2` 依赖,用于在开发期间使用嵌入式数据库。
3. 创建实体类和数据库访问接口
我们需要定义一个实体类来表示菜品投票,同时也需要一个数据库访问接口来实现数据的读写。以下是一个示例的实体类和数据库访问接口:
```
@Entity
@Table(name = "votes")
public class Vote {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private int count;
// 省略 getter 和 setter 方法
}
@Repository
public interface VoteRepository extends JpaRepository<Vote, Long> {
}
```
在这个实体类中,我们定义了一个 `Vote` 类,用于表示菜品投票。同时,我们使用了 `@Entity` 和 `@Table` 注解来将该类映射到数据库中的 `votes` 表中。在 `VoteRepository` 接口中,我们使用了 Spring Data JPA 提供的 `JpaRepository` 接口,并将 `Vote` 类和 `Long` 类型的 ID 作为类型参数。这样,我们就可以通过该接口来访问数据库中的数据了。
4. 创建控制器和视图
最后,我们需要创建一个控制器来处理用户的请求,并将处理结果返回给用户。同时,我们也需要创建一个视图来展示菜品投票的情况。以下是一个示例的控制器和视图:
```
@Controller
public class VoteController {
@Autowired
private VoteRepository voteRepository;
@GetMapping("/")
public String index(Model model) {
List<Vote> votes = voteRepository.findAll();
model.addAttribute("votes", votes);
return "index";
}
@PostMapping("/")
public String vote(@RequestParam String name) {
Vote vote = voteRepository.findByName(name);
if (vote == null) {
vote = new Vote();
vote.setName(name);
vote.setCount(1);
} else {
vote.setCount(vote.getCount() + 1);
}
voteRepository.save(vote);
return "redirect:/";
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Food Vote</title>
</head>
<body>
<h1>Food Vote</h1>
<form method="post">
<input type="text" name="name" placeholder="Enter food name">
<button type="submit">Vote</button>
</form>
<table>
<thead>
<tr>
<th>Name</th>
<th>Count</th>
</tr>
</thead>
<tbody>
<tr th:each="vote : ${votes}">
<td th:text="${vote.name}"></td>
<td th:text="${vote.count}"></td>
</tr>
</tbody>
</table>
</body>
</html>
```
在这个控制器中,我们使用 `@GetMapping` 和 `@PostMapping` 注解来分别处理 GET 和 POST 请求。在 `index()` 方法中,我们查询数据库中的所有菜品投票,并将结果传递给视图。在 `vote()` 方法中,我们根据用户输入的菜品名称来更新数据库中的菜品投票情况。最后,我们将视图的 HTML 代码放在了 `index.html` 文件中,用于展示菜品投票的情况。
这样,我们就完成了使用 Maven 创建项目并使用 Spring Boot 完成食堂菜品投票功能的过程。
阅读全文