package com.dao;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.event.LoadEventListener;
import com.bean.AccountBean;
import com.factory.Factory;
import com.sun.accessibility.internal.resources.accessibility;
public class CacheDao {
/**
* 存放数据的缓存数据(主要针对于一级缓存)
* */
public static Map<String, AccountBean> cacheMap = new HashMap<String, AccountBean>();
/**
* 把查询出来的数据放入到缓存;<br>
* 如果下次查询相同的id,可以直接从缓存取;而不用再次进入数据库;
* 如果不存在,把查询的结果放入到缓存中;
* */
public static AccountBean put(AccountBean bean){
String key = AccountBean.class.getName()+"#"+bean.getId();
if(cacheMap.containsKey(key)){
return cacheMap.get(key);
}
cacheMap.put(key, bean);
return bean;
}
public static void main(String[] args) {
AccountBean bean = (AccountBean)load(1);
System.out.println("---user1");
System.out.println(bean);
put(bean);
bean = (AccountBean)load(1);
System.out.println("---user2");
System.out.println(bean);
// AccountBean bean2 = (AccountBean)get(1);
// System.out.println("---user3");
// System.out.println(bean2);
//
// bean2 = (AccountBean)get(1);
// System.out.println("---user4");
// System.out.println(bean2);
}
/**
* get查询方式
* */
public static Object get(Serializable id){
Session session = Factory.getSession();
Transaction tran = session.beginTransaction();
tran.begin();
Object bean = session.get(AccountBean.class, id);
tran.commit();
session.close();
return bean;
}
/**
* load查询方式
* */
public static Object load(Serializable id){
String key = AccountBean.class.getName()+"#"+id;
if(cacheMap.get(key)!=null){
return cacheMap.get(key);
}
Session session = Factory.getSession();
Transaction tran = session.beginTransaction();
tran.begin();
Object obj = session.load(AccountBean.class, id);
tran.commit();
// session.close();
return obj;
}
}
分享到:
相关推荐
hibernate延迟加载解决 延迟加载的具体解决方法
Hibernate延迟加载以及利用Spring 大家看看 参考一下
详细介绍hibernate延迟加载,对hibernate初学者有一定的帮助
深入理解hibernate懒加载技术,正确使用懒加载
Hibernae 的延迟加载是一个非常常用的技术,实体的集合属性默认会被延迟加载,实体所关联的实体默认也会被延迟加载。Hibernate 通过这种延迟加载来降低系统的内存开销,从而保证 Hibernate 的运行性能。
Hibernate集合属性的延迟加载.doc
Hibernate延迟加载Hibernate延迟加载
Hibernate延迟加载机制.zip
Hibernate延时加载与lazy机制.docHibernate延时加载与lazy机制.doc
Hibernate 延迟加载
Hibernate延迟加载介绍.doc
hibernate延迟加载技术详细解 ,http://www.che2.com/提供
Hibernate的延迟加载
jsp中关于Hibernate延时加载的问题,实例源代码,详解都有
关于hibernate延迟加载,有很好的参考价值
hibernate3的属性延时加载是个很有意义的东西,它能让你把你不想加载到内存里的东西在查询的时候排除。 我相信来下载这个东西的人都已经很了解这一块的知识了,只是配不对那个类增强器才来下载我这个文件。 这些...