@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; } }结语