JavaWeb学习

内存实现User增删改

2019-10-27  本文已影响0人  幻影翔

接口

public interface UserRepository {

    /**
     * 创建或修改用户
     * @param user
     * @return
     */
    User saveOrUpdateUser(User user);

    /**
     * 删除用户
     * @param id
     */
    void deleteUser(Long id);

    /**
     * 根据Id查询用户
     * @param id
     * @return
     */
    User getUserById(Long id);

    /**
     * 获取用户列表
     * @return
     */
    List<User> listUsers();
}

实现类

@Repository
public class UserRepositoryImpl implements UserRepository {

    // 实现ID位移
    private static AtomicLong counter = new AtomicLong();
    private final ConcurrentHashMap<Long,User> userMap = new ConcurrentHashMap<>();
    @Override
    public User saveOrUpdateUser(User user) {
        Long id = user.getId();
        if (id == null){
            // 新增
            id = counter.incrementAndGet();
            user.setId(id);
        }else{
            // 更新
        }
        this.userMap.put(id,user);
        return user;
    }

    @Override
    public void deleteUser(Long id) {
        this.userMap.remove(id);
    }

    @Override
    public User getUserById(Long id) {
        return this.userMap.get(id);
    }

    @Override
    public List<User> listUsers() {
        return new ArrayList<User>(this.userMap.values());
    }
}
上一篇 下一篇

猜你喜欢

热点阅读