java模拟hibernate一级缓存示例分享
纯Java代码模拟Hibernate一级缓存原理,简单易懂。
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
publicclassLevelOneCache{
//这个对象就是用来模拟hibernate一级缓存的
privatestaticMap<Integer,Student>stus=newHashMap<Integer,Student>();
publicstaticvoidmain(String[]args){
getStudent(1);
getStudent(1);
getStudent(1);
getStudent(2);
getStudent(2);
}
publicstaticStudentgetStudent(Integerid){
if(stus.containsKey(id)){
System.out.println("从缓存中取数据");
returnstus.get(id);
}else{
System.out.println("从数据库中取数据");
Students=MyDB.getStudentById(id);
//将从数据库中取得的数据放入缓存
stus.put(id,s);
returns;
}
}
}
//模拟数据库
classMyDB{
privatestaticList<Student>list=newArrayList<Student>();
static{
Students1=newStudent();
s1.setName("Name1");
s1.setId(1);
Students2=newStudent();
s2.setName("Name2");
s2.setId(2);
Students3=newStudent();
s3.setName("Name3");
s3.setId(3);
//初始化数据库
list.add(s1);
list.add(s2);
list.add(s3);
}
//数据库中提供公共的查询方法
publicstaticStudentgetStudentById(Integerid){
for(Students:list){
if(s.getId().equals(id)){
returns;
}
}
//查询不到则返回空
returnnull;
}
}
//domain对象
classStudent{
privateIntegerid;
privateStringname;
publicIntegergetId(){
returnid;
}
publicvoidsetId(Integerid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
}
相关文章
- java 音频转为wav格式标准音频 | Java工具类
- java lamda表达式
- Java任务调度框架Quartz教程
- Java基础知识总结(超详细整理),java从入门到精通pdf「建议收藏」
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- Java.Utils:Date 时间工具类
- Java递归写法_java递归调用
- Java cast_java concat方法
- Java多线程基本使用及模拟购票
- Java接口是什么意思_JAVA接口
- java web注释_webservice命名空间
- java+opencv_opencv使用教程
- java prototype是什么,Java设计模式之原型模式(Prototype模式)介绍
- LeetCode 刷题常用数据结构(Java 篇)
- HibernateDao.java详解编程语言
- java基础Haep(堆)和Stack(栈)区别详解编程语言
- java学习笔记04–数组详解编程语言
- Java实现将文件或者文件夹压缩成zip详解编程语言
- Java之创建对象>7.Avoid finalizers详解编程语言
- 程序Linux下构建Java应用:从入门到精通(linux下开发java)
- MySQL驱动程序:Java集成简易操作(mysql的java驱动)
- Java下使用Redis进行高效缓存优化(Redis缓存java)
- 服务器上的文件Java获取Linux服务器文件:简单又高效的操作方法(java获取linux)
- 清理实时清除Java工程中过期Redis缓存.(redisjava过期)
- 策略解析Redis中Java实现的过期策略(redisjava过期)
- Java实现Linux:跨平台解决方案(java 实现linux)
- Java编程实现MySQL数据库连接(java连mysql数据库)
- Java存入Oracle数据库实现快速高效的数据存储(java存入oracle)
- Java并发编程示例(七):守护线程的创建和运行
- Java进阶教程之异常处理