⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usermanagerimpl3.java

📁 spring集成hibernate事物控制的四种方式
💻 JAVA
字号:
package com.oneedu.busi;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.oneedu.entity.User;

/**
 * 声明式事务
 * 
 * 不继承HibernateDaoSupport类,
 * 本类,提供setSessionFactory方法
 * 
 * DAO访问方式的主要优势在于它仅仅依赖于Hibernate API本身
 * 而无需引入任何Spring的类。 从无入侵性的角度来看,这一点非常吸引人。
 * 同时,对于Hibernate开发人员来说也更自然。
 * 
 * 
 * @author Administrator
 *
 */
public class UserManagerImpl3 implements UserManager {
	//让IOC容器,注入sessionFactory
	SessionFactory sessionFactory;

	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}
	
	public void save(String name) {
		//不继承 HibernateDaoSupport 类
		//使用IOC容器中,注入的sessionFactory,
		SessionFactory sf = (SessionFactory)this.sessionFactory;
		Session  session = sf.getCurrentSession();
		
		
		//如下面方式获得Session,不生效,因为IOC容器中的SessionFactory
		//是被事务管理起来的,自己创建的,并没有.
//		Configuration cfg = new Configuration().configure();
//		SessionFactory factory = cfg.buildSessionFactory();
//		Session session = factory.getCurrentSession();
		
		//这里创建一个BeanFactory,Client.java中,又创建一个BeanFactory,
		//两个不同的BeanFactory,对应不同的SessionFactory,事务,也不会起效
//		BeanFactory factory 
//		= new ClassPathXmlApplicationContext("applicationContext*.xml");
//		SessionFactory sf = (SessionFactory)factory.getBean("sessionFactory");
//		Session session = sf.getCurrentSession();

		
		//业务代码.使用声明式事务
		User user = new User();
		user.setName(name);
		session.save(user);
	}
	
	

	public void find(String name){}
	

	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -