项目方案:Java添加好友功能实现

1. 项目背景和目标

在社交网络应用中,添加好友是一项非常常见的功能。本项目旨在通过Java语言实现一个添加好友的功能,并提供相应的代码示例。

2. 技术选型

为了实现好友功能,我们可以选择以下技术和工具:

  • Java语言:作为项目的开发语言,Java具有广泛的应用和成熟的生态系统。
  • Spring Boot:用于构建基于Java的Web应用程序的框架,提供了便捷的开发和集成工具。
  • MySQL数据库:用于存储用户和好友关系的数据。
  • Maven:用于管理项目依赖和构建的工具。

3. 数据模型设计

在实现添加好友功能之前,我们首先需要设计好友关系的数据模型。以下是一个简单的示例:

用户表(users)

字段 类型
id int
username varchar
password varchar
created_at timestamp

好友关系表(friendships)

字段 类型
id int
user_id int
friend_id int
created_at timestamp

在上述数据模型中,用户表(users)用于存储用户信息,好友关系表(friendships)则用于存储用户之间的好友关系。

4. 代码实现

4.1 添加好友接口

首先,我们需要创建一个添加好友的接口,用于处理用户之间的好友请求。

@RestController
@RequestMapping("/friendship")
public class FriendshipController {
  
  @Autowired
  private FriendshipService friendshipService;
  
  @PostMapping
  public ResponseEntity<String> addFriend(@RequestParam("userId") Long userId, @RequestParam("friendId") Long friendId) {
    try {
      friendshipService.addFriend(userId, friendId);
      return ResponseEntity.ok("好友添加成功!");
    } catch (Exception e) {
      return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("好友添加失败:" + e.getMessage());
    }
  }
}

在上述代码中,我们使用了Spring Boot的注解和依赖注入,创建了一个处理添加好友请求的接口。通过@PostMapping注解定义了HTTP的POST请求方式,通过@RequestParam注解获取了请求中的参数。

4.2 添加好友服务

接下来,我们需要实现添加好友的具体逻辑。创建一个好友关系服务(FriendshipService)来处理好友的添加。

@Service
public class FriendshipService {
  
  @Autowired
  private FriendshipRepository friendshipRepository;
  
  public void addFriend(Long userId, Long friendId) {
    // 验证用户是否存在
    if (!userRepository.existsById(userId) || !userRepository.existsById(friendId)) {
      throw new RuntimeException("用户不存在!");
    }
    
    // 检查好友关系是否已存在
    if (friendshipRepository.existsByUserIdAndFriendId(userId, friendId)) {
      throw new RuntimeException("好友关系已存在!");
    }
    
    // 添加好友关系
    Friendship friendship = new Friendship();
    friendship.setUserId(userId);
    friendship.setFriendId(friendId);
    friendship.setCreatedAt(new Date());
    friendshipRepository.save(friendship);
  }
}

在上述代码中,我们使用了Spring Boot的注解和依赖注入,通过FriendshipRepository来访问数据库。在addFriend方法中,我们首先验证了用户是否存在,然后检查好友关系是否已存在,最后创建好友关系并保存到数据库中。

4.3 数据库访问

最后,我们需要创建一个好友关系的数据访问接口(FriendshipRepository)来处理数据库操作。

@Repository
public interface FriendshipRepository extends JpaRepository<Friendship, Long> {
  
  boolean existsByUserIdAndFriendId(Long userId, Long friendId);
  
}

在上述代码中,我们使用了Spring Data JPA的接口和注解,通过继承JpaRepository接口来实现对好友关系表的CRUD操作,并添加了一个自定义的方法existsByUserIdAndFriendId来检查好友关系是否已存在。

5. 总结

通过以上的步骤,我们完成了Java添加好友功能的实现。用户可以通过