传智播客java学习 hibernate缓存
今天我学习了徐老师讲的Hiberbate缓存知识,我上课做了简单的笔记:
缓存类型
一.事务范围:位于当前工作单元,不能并发访问
二.进程范围:多个工作单元共享,可并发访问,可存储实例本身也可存散列数据,然后在
重新组装
三.集群范围:多个进程和主机间访问,网络通信是重点.需要将数据复制到所有集群中的节点.
缓存和OID:
事务级缓存也用于对象id的使用范围,是理想的缓存
进程级缓存可选择实现id的进程范围存储,也和主键对应.并发工作单元查询同一id对象的话返
回相同的实例.在进程级缓存中的对象也可按值返回,每个工作单元再重新组装形成副本.
Hibernate缓存架构
1、一级缓存即session.
2、二级缓存是可配的插件,可用于进程/集群范围缓存.他们缓存都是状态(按值返回),
而不是真正的持久化对象.对于特定的数据项来说缓存的并发策略定义了事务的
隔离细节.每个类或者每个集合的二级缓存是可选可配的.每个缓存都使用了自己
的缓存区域.
3、Hibernate还实现了对查询结果集的缓存,他和二级缓存紧密结合.而且需要额外
的两个物理缓存区域来容纳缓存的查询结果和最后更新表的时间戳.
内置并发策略
并发策略是调解人,负责在缓存中检索数据.对于特定数据项,他也定义了事务隔离的语义.对类
或集合来说使用哪个并发策略需要做出判断.
四个内置的并发策略体现了递减的事务隔离的等级.
1、Transationsal
只在受管环境中使用,如果需要可以确保所有的事务隔离到可重复读,很少更新且防止脏数
据情况下该策略很重要
2、Read-write
 
相关文档:
在java中调用自己的c++代码是一件简单的事情,以下类为例:
class Prompt {
private native String getLine(String prompt);
public static void main(String args[]) {
Prompt p = new Prompt();
String input = p.getLine("Type a line: ");
&nbs ......
在通读jdk源代码的时候发现许多java方法前都有native关键字修饰,最后得知native是与C++联合开发的时候用的,java自己开发不用。
使用native关键字说明这个方法是原生函数,也就是这个方法是用C/C++语言实现的,并且被编译成了DLL,由java去调用。这些函数 ......
/**
* ### 真難的題目: 狗屁演算法 (測資很機車)
* 測驗結果: x.xx0 ms
* 測驗日期: 200y-mm-dd
* @author Raymond Wu (小璋丸)
*/
public class Main {
// 輸入緩衝區 (緩衝空 ......
我今天学习了徐老师讲的hibernate知识,我做了简单的笔记:
一、Hibernate
a) 连接java应用程序和关系型数据库的中间件,对JDBC API封装,负责对象持久化
b) 位于持久化层,封装所有的数据访问细节,使业务逻辑层更关注于业 ......