首先建一个map,该map用来寄存所有的数据

protected static Map<String, User> map = new HashMap<>();

加载所有User,将其放入到User中,map的key为User的id,value为user  加锁是为了爱护平安

public void loadAllUser() {

          if (map.size() == 0) {                  synchronized (map) {                          try {                                  List<User> userInfoList = userDAO.findAllUser();                                  for (User user : userInfoList) {                                  map.put(user.getId, user);                                  }                          } catch (Exception e) {                              e.printStackTrace();                          }                  }          }  }

如果须要依据id获取User

public User findById(String id){

      if(map.size() == 0){          loadAllUser();      }      User user = map.get(id);      return user;      }

这里须要先判断map是否为空,为空状况下就须要调用loadAllUser办法将数据存入到Map中

假如须要依据Name获取User  将map遍历一边

public User findByName(String name){

          if(map.size() == 0){              loadAllUser();          }          User user = new User();          for (Map.Entry<String, User> entry : map.entrySet()) {              if (entry.getValue().getName.equals(name)) {                  user = entry.getValue();              }      }      return user;  }

当然,必不可少的一个办法,clear

public void clearCache() {

      synchronized (map) {          map.clear();      }  }

*在对数据进行 增 删 改的时候,必须调用这个clear办法,将缓存清空

这样,一个简略的缓存机制就实现了

这仅仅是自己低见

残缺代码如下

import java.util.HashMap;  import java.util.List;  import java.util.Map;

/* 查找所以数据放入到缓存 /

  public class MapCache {      protected static Map<String, User> map = new HashMap<>();  public void loadAllUser() {      if (map.size() == 0) {          synchronized (map) {              try {                  List<User> userInfoList = userDAO.findAllUser();                  for (User user : userInfoList) {                      map.put(user.getId, user);                  }              } catch (Exception e) {                  e.printStackTrace();              }              }      }  }  /** 依据id查找 */  public User findById(String id) {      if (map.size() == 0) {          loadAllUser();      }      User user = map.get(id);      return user;  }  /** 依据name查找 */  public User findByName(String name) {      if (map.size() == 0) {          loadAllUser();      }      User user = new User();      for (Map.Entry<String, User> entry : map.entrySet()) {          if (entry.getValue().getName.equals(name)) {              user = entry.getValue();          }      }      return user;  }  /** 革除缓存 */  public void clearCache() {      synchronized (map) {          map.clear();      }  }

}