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

 更新时间:2014年03月28日 09:09:57   作者:  
这篇文章主要介绍了java模拟hibernate一级缓存示例,需要的朋友可以参考下

纯Java代码模拟Hibernate一级缓存原理,简单易懂。

复制代码 代码如下:

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;
 }
}

相关文章

  • Spring Boot集成Quartz注入Spring管理的类的方法

    Spring Boot集成Quartz注入Spring管理的类的方法

    本篇文章主要介绍了Spring Boot集成Quartz注入Spring管理的类的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Java中使用注解的实例详解

    Java中使用注解的实例详解

    注解(Annotation)是放在Java源码的类、方法、字段、参数前的一种特殊“注释”,这篇文章主要介绍了Java中如何使用注解,需要的朋友可以参考下
    2023-06-06
  • 详解基于Spring Cloud几行配置完成单点登录开发

    详解基于Spring Cloud几行配置完成单点登录开发

    这篇文章主要介绍了详解基于Spring Cloud几行配置完成单点登录开发,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • java实现商品管理系统

    java实现商品管理系统

    这篇文章主要为大家详细介绍了java实现商品管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Spring Cloud 网关服务 zuul  动态路由的实现方法

    Spring Cloud 网关服务 zuul 动态路由的实现方法

    网关服务是流量的唯一入口。不能随便停服务。所以动态路由就显得尤为必要。这篇文章主要介绍了Spring Cloud 网关服务 zuul 三 动态路由的相关知识,需要的朋友可以参考下
    2019-10-10
  • Java实现哈希表的基本功能

    Java实现哈希表的基本功能

    今天教大家怎么用Java实现哈希表的基本功能,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-05-05
  • Java实现抽奖功能

    Java实现抽奖功能

    这篇文章主要为大家详细介绍了Java实现抽奖功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Spring Security 中如何让上级拥有下级的所有权限(案例分析)

    Spring Security 中如何让上级拥有下级的所有权限(案例分析)

    这篇文章主要介绍了Spring Security 中如何让上级拥有下级的所有权限,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Idea创建多模块maven聚合项目的实现

    Idea创建多模块maven聚合项目的实现

    这篇文章主要介绍了Idea创建多模块maven聚合项目的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • java实现web实时消息推送的七种方案

    java实现web实时消息推送的七种方案

    这篇文章主要为大家介绍了java实现web实时消息推送的七种方案示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07

最新评论