本实验将通过前面章节学习的Spring,SpringMVC,SpringBoot,Mybatis框架知识实现一个用户信息增删改查操作功能。具体要求如下: (1)用户包含:用户ID,用户名,用户工资 (2)页面主要有:显示所有洪湖,注册一个用户,删除用户,要求使用Thymeleaf设计页面 (3)Controller功能:注册一个用户,查看当前用户,删除一个用户 (4)Mapper功能:使用注解或者使用XML来实现增删改查等功能其中数据库中Users表如下: 1)创建数据库test create database test 2)创建表CREATE TABLE users ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, salary float(10) DEFAULT NULL, PRIMARY KEY (id) );插入数据insert into users VALUES (1,"Peter",3000) insert into users VALUES (2,"John",5000)
时间: 2023-06-18 16:02:09 浏览: 114
好的,这个实验需要我们使用Spring、SpringMVC、SpringBoot和Mybatis框架来实现一个用户信息增删改查操作功能,同时需要使用Thymeleaf来设计页面。首先我们需要创建一个SpringBoot项目,然后加入相应的依赖。可以在pom.xml文件中加入以下依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
```
其中,第一个依赖是Thymeleaf的起步依赖,第二个依赖是Mybatis框架的起步依赖,第三个依赖是Druid连接池的起步依赖。
接下来,我们需要创建一个User实体类,表示用户信息。User实体类的代码如下:
```
public class User {
private int id;
private String name;
private float salary;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getSalary() {
return salary;
}
public void setSalary(float salary) {
this.salary = salary;
}
}
```
然后,我们需要创建一个Mapper接口,用于定义对数据库的操作。可以使用注解方式或者XML方式来实现。这里我们使用注解方式来实现。Mapper接口的代码如下:
```
@Mapper
public interface UserMapper {
@Select("SELECT * FROM users")
List<User> findAll();
@Select("SELECT * FROM users WHERE id=#{id}")
User findById(int id);
@Insert("INSERT INTO users(name, salary) VALUES(#{name}, #{salary})")
void save(User user);
@Update("UPDATE users SET name=#{name}, salary=#{salary} WHERE id=#{id}")
void update(User user);
@Delete("DELETE FROM users WHERE id=#{id}")
void delete(int id);
}
```
在Mapper接口中,我们定义了增删改查等操作的方法。其中,@Mapper注解表示这是一个Mapper接口,@Select、@Insert、@Update、@Delete注解分别表示查询、插入、更新和删除操作。
接下来,我们需要创建一个Service接口和一个Service实现类,用于调用Mapper接口中定义的方法。Service接口的代码如下:
```
public interface UserService {
List<User> findAll();
User findById(int id);
void save(User user);
void update(User user);
void delete(int id);
}
```
Service实现类的代码如下:
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> findAll() {
return userMapper.findAll();
}
@Override
public User findById(int id) {
return userMapper.findById(id);
}
@Override
public void save(User user) {
userMapper.save(user);
}
@Override
public void update(User user) {
userMapper.update(user);
}
@Override
public void delete(int id) {
userMapper.delete(id);
}
}
```
在Service实现类中,我们使用@Autowired注解将UserMapper注入进来,然后调用Mapper接口中定义的方法来实现相应的功能。
最后,我们需要创建一个Controller类,用于处理用户请求并调用相应的Service方法。Controller类的代码如下:
```
@Controller
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/")
public String index(Model model) {
List<User> userList = userService.findAll();
model.addAttribute("userList", userList);
return "index";
}
@GetMapping("/add")
public String add(Model model) {
model.addAttribute("user", new User());
return "add";
}
@PostMapping("/save")
public String save(User user) {
userService.save(user);
return "redirect:/";
}
@GetMapping("/edit/{id}")
public String edit(@PathVariable int id, Model model) {
User user = userService.findById(id);
model.addAttribute("user", user);
return "edit";
}
@PostMapping("/update")
public String update(User user) {
userService.update(user);
return "redirect:/";
}
@GetMapping("/delete/{id}")
public String delete(@PathVariable int id) {
userService.delete(id);
return "redirect:/";
}
}
```
在Controller类中,我们使用@Autowired注解将UserService注入进来,然后定义了增删改查等操作的方法。其中,@GetMapping和@PostMapping注解分别表示GET和POST请求,@PathVariable注解表示获取URL中的参数。
最后,我们需要编写页面代码,使用Thymeleaf来渲染页面。可以在resources/templates目录下创建相应的HTML文件,然后编写HTML代码。这里只给出index.html和add.html的代码示例:
index.html
```
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>用户列表</title>
</head>
<body>
<h1>用户列表</h1>
<a th:href="@{/add}">添加用户</a>
<table>
<thead>
<tr>
<th>ID</th>
<th>用户名</th>
<th>工资</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr th:each="user : ${userList}">
<td th:text="${user.id}"></td>
<td th:text="${user.name}"></td>
<td th:text="${user.salary}"></td>
<td>
<a th:href="@{/edit/{id}(id=${user.id})}">编辑</a>
<a th:href="@{/delete/{id}(id=${user.id})}">删除</a>
</td>
</tr>
</tbody>
</table>
</body>
</html>
```
add.html
```
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>添加用户</title>
</head>
<body>
<h1>添加用户</h1>
<form th:action="@{/save}" method="post">
<div>
<label for="name">用户名:</label>
<input type="text" id="name" name="name"/>
</div>
<div>
<label for="salary">工资:</label>
<input type="text" id="salary" name="salary"/>
</div>
<input type="submit" value="添加"/>
</form>
</body>
</html>
```
到此为止,我们已经完成了用户信息增删改查操作功能的实现。可以运行项目,访问http://localhost:8080/来测试相应的功能。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)