以下是详细讲解“Spring boot2+jpa+thymeleaf实现增删改查”的完整攻略。
1. 准备工作
在开始实现增删改查功能之前,我们需要进行一些准备工作。
1.1 创建Spring Boot工程
首先,我们需要创建一个Spring Boot工程,在这里可以使用Spring Initializr快速创建一个基础工程。在创建工程的过程中需要添加依赖Spring Web Starter
、Spring Data JPA
、Thymeleaf
。
1.2 创建数据库
接下来,我们需要创建数据库,并在数据库中创建用于存储数据的表。这里以一个用户表为例,表结构如下:
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
1.3 配置数据源
在配置文件中,我们需要配置数据源和JPA的相关信息。具体的配置信息如下:
# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# JPA配置
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
2. 实现增删改查功能
接下来,我们开始实现增删改查功能,这里需要编写控制器、服务和数据访问层的代码。
2.1 控制器
首先,我们需要编写控制器,通过控制器来接收用户的请求,并将请求转发到服务中进行处理。控制器的代码如下:
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 查询用户列表
* @param model
* @return
*/
@GetMapping("/list")
public String userList(Model model) {
List<User> userList = userService.findAll();
model.addAttribute("userList", userList);
return "user/list";
}
/**
* 跳转到添加用户页面
* @return
*/
@GetMapping("/add")
public String addUserPage() {
return "user/add";
}
/**
* 添加用户
* @param user
* @return
*/
@PostMapping("/add")
public String addUser(User user) {
userService.save(user);
return "redirect:/user/list";
}
/**
* 跳转到修改用户页面,同时回显用户数据
* @param id
* @param model
* @return
*/
@GetMapping("/edit/{id}")
public String editUserPage(@PathVariable("id") Long id, Model model) {
User user = userService.findById(id);
model.addAttribute("user", user);
return "user/edit";
}
/**
* 修改用户
* @param user
* @return
*/
@PostMapping("/edit")
public String editUser(User user) {
userService.save(user);
return "redirect:/user/list";
}
/**
* 删除用户
* @param id
* @return
*/
@GetMapping("/delete/{id}")
public String deleteUser(@PathVariable("id") Long id) {
userService.deleteById(id);
return "redirect:/user/list";
}
}
2.2 服务
控制器中的方法需要实现具体的业务逻辑,这里需要编写服务的代码,服务中的方法用于操作数据库,与数据访问层进行交互。服务层的代码如下:
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
/**
* 查询所有用户
* @return
*/
public List<User> findAll() {
return userRepository.findAll();
}
/**
* 根据id查询用户
* @param id
* @return
*/
public User findById(Long id) {
return userRepository.findById(id).orElse(null);
}
/**
* 保存用户
* @param user
*/
public void save(User user) {
userRepository.save(user);
}
/**
* 根据id删除用户
* @param id
*/
public void deleteById(Long id) {
userRepository.deleteById(id);
}
}
2.3 数据访问层
服务中需要与数据访问层进行交互,这里需要编写数据访问层的代码,用于操作数据库。数据访问层的代码如下:
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
至此,我们已经完成了增删改查功能的实现,现在我们需要编写前端页面来与用户进行交互。
3. 编写前端页面
在这里,我们通过Thymeleaf引擎编写前端页面,通过表单的方式与用户进行交互。以下是添加用户和修改用户的页面。
3.1 添加用户页面
<!DOCTYPE html>
<html lang="zh-CN"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>添加用户</title>
</head>
<body>
<h3>添加用户</h3>
<form method="post" action="/user/add">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>邮箱:</td>
<td><input type="email" name="email"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="保存">
</td>
</tr>
</table>
</form>
</body>
</html>
3.2 修改用户页面
<!DOCTYPE html>
<html lang="zh-CN"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>修改用户</title>
</head>
<body>
<h3>修改用户</h3>
<form method="post" action="/user/edit">
<input type="hidden" name="id" th:value="${user.id}">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username" th:value="${user.username}"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password" th:value="${user.password}"></td>
</tr>
<tr>
<td>邮箱:</td>
<td><input type="email" name="email" th:value="${user.email}"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="保存">
</td>
</tr>
</table>
</form>
</body>
</html>
以上是使用Spring Boot2+jpa+thymeleaf实现增删改查的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring boot2+jpa+thymeleaf实现增删改查 - Python技术站