Hibernate中两种获取Session的方式(2)

 

 

首页Linux编程

背景:

阅读新闻

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);
 }

}

 

C语言指针越界访问示例

Hibernate持久化对象的三种状态

相关资讯       hibernate  Hibernate Session 

   

本文评论   查看全部评论 (0)


评论声明

尊重网上道德,遵守中华人民共和国的各项有关法律法规

承担一切因您的行为而直接或间接导致的民事或刑事法律责任

本站管理人员有权保留或删除其管辖留言中的任意内容

本站有权在网站内转载或引用您的评论

参与本评论即表明您已经阅读并接受上述条款

 

 

 

最新资讯

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/61231a3c62d29594a6207b058163ee91.html