`
xiaoheliushuiya
  • 浏览: 405374 次
文章分类
社区版块
存档分类
最新评论

hibernate 立即加载和延迟加载

 
阅读更多
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;
}
}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics