本实验将通过前面章节学习的Spring,SpringMVC,SpringBoot,Mybatis框架知识实现一个用户信息增删改查操作功能。具体要求如下: (1)用户包含:用户ID,用户名,用户工资 (2)页面主要有:显示所有洪湖,注册一个用户,删除用户,要求使用Thymeleaf设计页面 (3)Controller功能:注册一个用户,查看当前用户,删除一个用户 (4)Mapper功能:使用注解或者使用XML来实现增删改查等功能
时间: 2023-06-14 19:04:59 浏览: 152
好的,这个实验看起来比较简单,我们可以先从搭建环境开始。以下是简要的步骤:
1. 安装并配置MySQL数据库。
2. 创建一个SpringBoot项目,添加web和mysql依赖。
3. 配置application.properties文件,设置数据库连接信息。
4. 创建数据库表,包括用户ID、用户名、用户工资字段。
5. 创建实体类User,对应数据库表。
6. 创建Mapper接口和XML文件,实现增删改查等功能。
7. 创建Controller类,处理用户请求,调用Mapper接口。
让我们逐步实现这些步骤。
### 1. 安装并配置MySQL数据库
我们可以通过官网下载MySQL Community Server并进行安装。安装完成后,可以通过命令行进入MySQL,创建用户和数据库,以及授予用户访问数据库的权限。示例代码:
```mysql
CREATE DATABASE mydatabase;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
```
### 2. 创建一个SpringBoot项目,添加web和mysql依赖
我们可以使用Spring Initializr快速创建一个SpringBoot项目,并添加web和mysql依赖。
### 3. 配置application.properties文件,设置数据库连接信息
在src/main/resources目录下创建application.properties文件,添加以下配置:
```
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=myuser
spring.datasource.password=mypassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
```
### 4. 创建数据库表,包括用户ID、用户名、用户工资字段
我们可以使用MySQL Workbench创建表,示例代码:
```mysql
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(45) NOT NULL,
`salary` double NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
```
### 5. 创建实体类User,对应数据库表
```java
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String username;
private Double salary;
// 省略 getter 和 setter 方法
}
```
### 6. 创建Mapper接口和XML文件,实现增删改查等功能
```java
@Mapper
public interface UserMapper {
@Select("SELECT * FROM user")
List<User> findAll();
@Select("SELECT * FROM user WHERE id = #{id}")
User findById(Integer id);
@Insert("INSERT INTO user(username, salary) VALUES(#{username}, #{salary})")
int save(User user);
@Update("UPDATE user SET username = #{username}, salary = #{salary} WHERE id = #{id}")
int update(User user);
@Delete("DELETE FROM user WHERE id = #{id}")
int delete(Integer id);
}
```
### 7. 创建Controller类,处理用户请求,调用Mapper接口
```java
@Controller
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/")
public String index(Model model) {
List<User> userList = userMapper.findAll();
model.addAttribute("userList", userList);
return "index";
}
@GetMapping("/add")
public String add() {
return "add";
}
@PostMapping("/save")
public String save(User user) {
userMapper.save(user);
return "redirect:/";
}
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Integer id, Model model) {
User user = userMapper.findById(id);
model.addAttribute("user", user);
return "edit";
}
@PostMapping("/update")
public String update(User user) {
userMapper.update(user);
return "redirect:/";
}
@GetMapping("/delete/{id}")
public String delete(@PathVariable("id") Integer id) {
userMapper.delete(id);
return "redirect:/";
}
}
```
至此,我们已经完成了这个实验的全部要求。可以使用浏览器访问http://localhost:8080/ 进行测试。
阅读全文