源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java模拟hibernate一级缓存示例分享

  • 时间:2021-04-01 11:10 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java模拟hibernate一级缓存示例分享
纯Java代码模拟Hibernate一级缓存原理,简单易懂。
[u]复制代码[/u] 代码如下:
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class LevelOneCache {  //这个对象就是用来模拟hibernate一级缓存的  private static Map<Integer, Student> stus=new HashMap<Integer, Student>();  public static void main(String[] args) {   getStudent(1);   getStudent(1);   getStudent(1);   getStudent(2);   getStudent(2);  }  public static Student getStudent(Integer id){   if(stus.containsKey(id)){    System.out.println("从缓存中取数据");    return stus.get(id);   } else {    System.out.println("从数据库中取数据");    Student s=MyDB.getStudentById(id);    //将从数据库中取得的数据放入缓存    stus.put(id, s);    return s;   }  } } //模拟数据库 class MyDB{  private static List<Student> list=new ArrayList<Student>();  static{   Student s1=new Student();   s1.setName("Name1");   s1.setId(1);   Student s2=new Student();   s2.setName("Name2");   s2.setId(2);   Student s3=new Student();   s3.setName("Name3");   s3.setId(3);   //初始化数据库   list.add(s1);   list.add(s2);   list.add(s3);  }  //数据库中提供公共的查询方法  public static Student getStudentById(Integer id){   for(Student s:list){    if(s.getId().equals(id)){     return s;    }   }   //查询不到则返回空   return null;  } } //domain对象 class Student{  private Integer id;  private String name;  public Integer getId() {   return id;  }  public void setId(Integer id) {   this.id = id;  }  public String getName() {   return name;  }  public void setName(String name) {   this.name = name;  } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部