内存实现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());
}
}