Hibernate与spring整合时的整合步骤

Hibernate与Spring整合步骤:

第一步:加入Hibernate和Spring的相关jar包

第二步:创建application.xml文件,配置dataSource和session,

第三步:将sessionFactory对象注入到Dao实现类中,并操作数据库

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

	<bean id="userDao" class="com.hcj.dao.impl.UserDaoImpl">
		<!-- 将sessionFactory注入到Dao实现类中 -->
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	<bean id="userServer" class="com.hcj.service.impl.UserServiceImpl">
		<!-- 动态添加userDao到UserServiceImpl对象中 -->
		<property name="userDao" ref="userDao"></property>
	</bean>

	<!-- 配置DataSource -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
		<property name="url" value="jdbc:oracle:thin:@localhost:1521/orcl" />
		<property name="username" value="scott" />
		<property name="password" value="123456" />
	</bean>

	<!-- 配置sessionFactoty -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="mappingResources">
			<list>
				<value>User.hbm.xml
				</value>
			</list>
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="dialect">org.hibernate.dialect.Oracle9Dialect</prop>
				<prop key="show_sql">true</prop>
			</props>
		</property>
	</bean>

</beans>

最后:附上dao实现类和userServerImle类的代码

UserServerImpl类

package com.hcj.service.impl;

import com.hcj.dao.UserDao;
import com.hcj.model.User;
import com.hcj.service.UserService;

public class UserServiceImpl implements UserService {
	private UserDao userDao; 

	public UserDao getUserDao() {
		return userDao;
	}

	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

	@Override
	public void save(User user) {
		userDao.save(user);
	}

	public UserServiceImpl(){

	}

	public UserServiceImpl(UserDao userDao){
		this.userDao = userDao;
	}

}

dao实现类

package com.hcj.dao.impl;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.sql.DataSource;

import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.classic.Session;

import com.hcj.dao.UserDao;
import com.hcj.model.User;

public class UserDaoImpl implements UserDao {
	private SessionFactory sessionFactory;

 	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

	@Override
	public void save(User user){
		Session session = sessionFactory.openSession();
		Transaction tx = session.beginTransaction();
		try {
			session.save(user);
			tx.commit();
		} catch (Exception e) {
			if(tx != null){
				tx.rollback();
			}
		}finally{
			session.close();
		}
	}

}

时间: 2024-08-11 07:36:06

Hibernate与spring整合时的整合步骤的相关文章

Struts、Hibernate和Spring的整合

Spring整合Hibernate Spring以其开放性,能与大部分ORM框架良好的整合.这样Spring就能轻松地使用ORM. Spring提供了DAO支持,DA0组件是应用的持久层访问的重要组件,我们把主要精力集中在数据的管理口上. 此外,Spring还提供了一致的异常抽象,不需要在编码时显示的捕获各种特定的异常. 通过Bibernate进行数据持久层操作时,Hibernate的Session接口提供了基本的数据访问方法,获得Hibernate Session对象方法是要实现Hiberna

Hibernate和spring整合

个人运行环境: hibernate:4.3.5 spring-context:4.0.6 <dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId

hibernate在使用getCurrentSession时提示no session found for current thread

大致错误片段 org.hibernate.HibernateException: No Session found for current thread at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:97) 大致问题:hibernate在处理sessoin SessionFactory的getCurrentSession并不能保证在没有当前Se

struts2,hibernate,spring整合笔记(2)

上一话struts2,hibernate,spring整合笔记(1) 接下来继续 配置完struts之后就要开始hibernate的配置 hibernate的环境并不依赖web开发环境,在我第一次配置hibernate时用的javase, 在window-> preferences->java->user libraries,创建一个新的Use libraries,添加相应的jar包 再在项目build path->build configurationpath->add l

条理清晰的搭建SSH环境之整合Hibernate和Spring

上篇博客整合了Struts和Spring,感觉很简单,这篇博客主要讲述Hibernate和Spring的整合. 如果说上篇博客中的整合是以为Spring的IOC可以管理对象,让Struts2里的对象管理变得更方便.那么Hibernate与Spring的整合的好处就是,可以将SessionFactory的实例交由Spring容器管理,那么我们只需要这一个实例就可以了.还有一点就是声明式的事务管理非常方便. 需要以下配置: 1.配置applicationContext.xml文件,添加配置sessi

struts2与spring整合时需要注意的点

首先我们需要明白spring整合struts2中的什么东西,spring中的核心就是IOC和AOP,IOC是对象的容器,AOP是处理动态代理的;比如spring与hibernate整合时就要用到aop,具体就是把事务的开启与关闭交于spring中的aop处理.一句话,spring就是整合struts2的对象. 先前struts.xml配置文件中action标签中的class属性的值是"包名+类名",这样配置就可以让struts2自己生成对象,但这样不符合模式设计六大原则,为了解决这个问

Hibernate 与Spring整合出现 hibernate.HibernateException: createCriteria is not valid without active transaction

当 Hibernate 和 Spring 整合时,在 Spring 中指定的 Hibernate.cfg.xml 文件内容中要注释掉以下内容: <!-- Enable Hibernate's automatic session context management --> <!-- <property name="current_session_context_class">thread</property> -->这样,才能将 Hibe

ssh整合之三hibernate和spring整合

1.拷贝我们的spring事务控制所需的jar包 2.在spring容器中配置我们的hibernateTemplate以及事务管理器 <?xml version="1.0" encoding="UTF-8"?> <!-- spring的配置文件:导入约束 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="htt

struts2,hibernate,spring整合笔记(3)

struts2,hibernate,spring整合笔记(1) struts2,hibernate,spring整合笔记(2) 配好struts和hibernate就要开始spring了 老规矩,还是先导入jar包 spring.jar aspectjrt.jar aspectjwerver.jar cglib-nodep-2.1_3.jar common-logging.jar c3p0-0.9.1.jar 之后加入配置文件src目录下applicationContext.xml <?xml