Java
来源:互联网 发布:plsql执行sql语句 编辑:程序博客网 时间:2024/05/16 14:46
Session加载实体对象的步骤是:
① Session在调用数据库查询功能之前,首先会在一级缓存中通过实体类型和主键进行查找,如果一级缓存查找命中且数据状态合法,则直接返回;
② 如果一级缓存没有命中,接下来Session会在当前NonExists记录(相当于一个查询黑名单,如果出现重复的无效查询可以迅速做出判断,从而提升性能)中进行查找,如果NonExists中存在同样的查询条件,则返回null;
③ 如果一级缓存查询失败则查询二级缓存,如果二级缓存命中则直接返回;
④ 如果之前的查询都未命中,则发出SQL语句,如果查询未发现对应记录则将此次查询添加到Session的NonExists中加以记录,并返回null;
⑤ 根据映射配置和SQL语句得到ResultSet,并创建对应的实体对象;
⑥ 将对象纳入Session(一级缓存)的管理;
⑦ 如果有对应的拦截器,则执行拦截器的onLoad方法;
⑧ 如果开启并设置了要使用二级缓存,则将数据对象纳入二级缓存;
⑨ 返回数据对象。
阅读全文
1 0
- java
- JAVA
- JAVA
- JAVA
- java
- Java
- Java
- JAVA:
- java
- java
- java
- java
- Java
- java
- java
- java
- JAVA?
- java
- rrr
- Python原始字符串(Raw String)/Unicode/str
- JSTL -- fn函数库
- 聊下 git rebase -i
- word导出02
- Java
- 新建卷删除卷和压缩卷和扩展卷
- MAC 运行gradle报permission denied错误
- node学习
- BeanUtils.copyProperties 复制对象异常问题
- 学长教你装系统(二)U盘启动设置
- JVM 垃圾回收器工作原理及使用实例介绍
- 关于本地缓存localstorage与sessionStorage 数组 (array)字符串(string) 对象(object)的存储技巧和注意事项
- Oracle因开启大页内存无法启动ORA-27100: shared memory realm already exists Linux-x86_64 Error: 17: File exists