我使用 MySQL 创建了一个用户表,关键字有user_id、user_name、account、password 、phone 、address 、role,请使用 springboot+hibernate+thymeleaf 帮我完成分页查询所有用户的功能,查询到的结果返回user-check.html,包含Controller、DAO、Entity、Service、Impl
时间: 2023-07-10 17:05:04 浏览: 51
首先,需要配置好 Spring Boot、Hibernate 和 Thymeleaf 的环境,具体步骤可以参考官方文档或者其他教程。
接下来,我们按照 DAO -> Entity -> Service -> Controller 的顺序来实现。
1. DAO
首先,我们需要创建一个 UserRepository 接口,继承 JpaRepository,并且定义一个名为 findByRole 的方法,用于查询指定角色的用户。
```java
public interface UserRepository extends JpaRepository<User, Long> {
Page<User> findByRole(String role, Pageable pageable);
}
```
2. Entity
接着,我们需要创建一个 User 实体类,用于映射 MySQL 中的用户表。
```java
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long user_id;
private String user_name;
private String account;
private String password;
private String phone;
private String address;
private String role;
// 省略 getter 和 setter
}
```
3. Service
然后,我们需要创建一个 UserService 接口和一个 UserServiceImpl 类。在 UserServiceImpl 类中,我们需要注入 UserRepository,然后调用其方法来查询用户。
```java
public interface UserService {
Page<User> findByRole(String role, Pageable pageable);
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Override
public Page<User> findByRole(String role, Pageable pageable) {
return userRepository.findByRole(role, pageable);
}
}
```
4. Controller
最后,我们需要创建一个 UserController 类,用于处理用户的 HTTP 请求。在 UserController 类中,我们需要注入 UserService,并且定义一个名为 list 的方法,用于查询所有用户并返回 user-check.html 页面。
```java
@Controller
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/user-check")
public String list(@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "10") int size,
Model model) {
Pageable pageable = PageRequest.of(page, size);
Page<User> users = userService.findByRole("user", pageable);
model.addAttribute("users", users);
return "user-check";
}
}
```
最后,我们需要在 resources/templates 目录下创建一个名为 user-check.html 的 Thymeleaf 模板,用于展示用户列表。具体的页面实现可以根据需求自行设计。
这样,我们就完成了分页查询所有用户的功能。整个项目的目录结构和代码可以参考下面的示例。
```bash
├── src
│ ├── main
│ │ ├── java
│ │ │ ├── com
│ │ │ │ ├── example
│ │ │ │ │ ├── demo
│ │ │ │ │ │ ├── controller
│ │ │ │ │ │ │ └── UserController.java
│ │ │ │ │ │ ├── dao
│ │ │ │ │ │ │ └── UserRepository.java
│ │ │ │ │ │ ├── entity
│ │ │ │ │ │ │ └── User.java
│ │ │ │ │ │ ├── service
│ │ │ │ │ │ │ ├── impl
│ │ │ │ │ │ │ │ └── UserServiceImpl.java
│ │ │ │ │ │ │ └── UserService.java
│ │ │ │ │ │ └── DemoApplication.java
│ │ └── resources
│ │ ├── application.properties
│ │ ├── templates
│ │ │ └── user-check.html
```