闽公网安备 35020302035485号
@Entity
@Table(name = "users")
public class UserPO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "username", nullable = false)
private String username;
@Column(name = "password", nullable = false)
private String password;
// 堆代码 duidaima.com
// Getters and Setters
}
1.3 使用场景public class UserVO {
private String username;
private String email;
private String phoneNumber;
// Getters and Setters
}
2.3 使用场景@Repository
public interface UserDAO extends JpaRepository<UserPO, Long> {
UserPO findByUsername(String username);
}
3.3 使用场景public class UserBO {
private String username;
private String encryptedPassword;
private List<Role> roles;
// 业务方法
public boolean isAdmin() {
return roles.contains(Role.ADMIN);
}
// Getters and Setters
}
4.3 使用场景public class UserDTO {
private String username;
private String email;
private String phoneNumber;
private String role;
// Getters and Setters
}
5.3 使用场景public class UserPOJO {
private String username;
private String password;
// Getters and Setters
}
6.3 使用场景PO 对象:用于 ORM 映射,与数据库表结构一一对应。
@Entity
@Table(name = "users")
public class UserPO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "username", nullable = false)
private String username;
@Column(name = "password", nullable = false)
private String password;
// Getters and Setters
}
8.1.2 UserDAO 接口@Repository
public interface UserDAO extends JpaRepository<UserPO, Long> {
UserPO findByUsername(String username);
}
8.1.3 UserBO 类public class UserBO {
private String username;
private String encryptedPassword;
// 业务逻辑
public boolean isPasswordCorrect(String inputPassword) {
return encryptedPassword.equals(encryptPassword(inputPassword));
}
private String encryptPassword(String password) {
// 加密逻辑
return password; // 这里为了简化,实际应返回加密后的密码
}
// Getters and Setters
}
8.1.4 UserService 类@Service
public class UserService {
@Autowired
private UserDAO userDAO;
public UserBO getUserByUsername(String username) {
UserPO userPO = userDAO.findByUsername(username);
UserBO userBO = new UserBO();
userBO.setUsername(userPO.getUsername());
userBO.setEncryptedPassword(userPO.getPassword());
return userBO;
}
}
8.1.5 UserController 类@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{username}")
public UserVO getUser(@PathVariable String username) {
UserBO userBO = userService.getUserByUsername(username);
UserVO userVO = new UserVO();
userVO.setUsername(userBO.getUsername());
return userVO;
}
}
结语