背景:
阅读新闻
Hibernate中两种获取Session的方式
[日期:2012-12-13] 来源:Linux社区 作者:yingjiebohe [字体:]
用户业务逻辑层
package com.bjpowernode.usermgr.manager;
import java.util.Date;
import org.hibernate.Session;
import com.bjpowernode.usermgr.domain.Log;
import com.bjpowernode.usermgr.domain.User;
import com.bjpowernode.usermgr.util.HibernateUtils;
public class UserManagerImpl implements UserManager {
/**
* 添加用户和添加日志都使用了同一个Session,所以
* 当用户添加失败的时候,日志也会添加失败。事务回滚
* 用户添加成功日志也会添加成功
*/
public void addUser(User user) {
Session session=null;
try{
//取得当前线程Session
session=HibernateUtils.getSessionFactory().getCurrentSession();
session.beginTransaction();
//保存用户
session.save(user);
Log log=new Log();
log.setType("操作日志");
log.setTime(new Date());
log.setDetail("XXX");
LogManager logManager=new LogManagerImpl();
//保存日志
logManager.addLog(log);
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}
}
}
日志实现类:
package com.bjpowernode.usermgr.manager;
import org.hibernate.Session;
import com.bjpowernode.usermgr.domain.Log;
import com.bjpowernode.usermgr.util.HibernateUtils;
public class LogManagerImpl implements LogManager {
public void addLog(Log log) {
//获取当前线程的Session
HibernateUtils.getSessionFactory().getCurrentSession().save(log);
}
}
测试类
package com.bjpowernode.usermgr.manager;
import junit.framework.TestCase;
import com.bjpowernode.usermgr.domain.User;
public class UserManagerImplTest extends TestCase {
public void testAddUser() {
UserManager userManager=new UserManagerImpl();
User user=new User();
user.setName("张三");
userManager.addUser(user);
}
}
相关资讯 hibernate Hibernate Session
本文评论 查看全部评论 (0)
尊重网上道德,遵守中华人民共和国的各项有关法律法规 承担一切因您的行为而直接或间接导致的民事或刑事法律责任 本站管理人员有权保留或删除其管辖留言中的任意内容 本站有权在网站内转载或引用您的评论 参与本评论即表明您已经阅读并接受上述条款
评论声明
最新资讯