首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Spring调整Hibernate的步骤

2012-12-23 
Spring整合Hibernate的步骤为什么要整合Hibernate?1、使用Spring的IOC功能管理SessionFactory对象 LocalSes

Spring整合Hibernate的步骤

为什么要整合Hibernate?1、使用Spring的IOC功能管理SessionFactory对象 LocalSessionFactoryBean2、使用Spring管理Session对象  HibernateTemplate3、使用Spring的功能实现声明式的事务管理整合Hibernate的步骤:1、配置SessionFactory(可以自动完成) <bean id="sessionFactory"  ref="sessionFactory"></property> </bean>3、让我们的类继承HibernateDaoSupport类,该类提供了HibernateTemplate的getter和setter方法。4、将hibernateTemplete注入到我们的类中 <bean id="common" ref="hibernateTemplete"></property> </bean>5、将我们的类的方法修改成hibernateTemplete的操作。public class 我们的类 extends HibernateDaoSupport implements ICommon<POJO> { public void insertObject(Object obj) throws Exception {  try {   this.getHibernateTemplate().save(obj);  } catch (Exception e) {   e.printStackTrace();   throw new Exception(e);  } }  Spring整合Hibernate的步骤 收藏为什么要整合Hibernate?1、使用Spring的IOC功能管理SessionFactory对象 LocalSessionFactoryBean2、使用Spring管理Session对象  HibernateTemplate3、使用Spring的功能实现声明式的事务管理整合Hibernate的步骤:1、配置SessionFactory(可以自动完成) <bean id="sessionFactory"  ref="sessionFactory"></property> </bean>3、让Common继承HibernateDaoSupport类,该类提供了HibernateTemplate的getter和setter方法。4、将hibernateTemplete注入到Common中 <bean id="common" ref="hibernateTemplete"></property> </bean>5、将Common的方法修改成hibernateTemplete的操作。package com.aptech.common;import java.sql.SQLException;import java.util.List;import org.hibernate.HibernateException;import org.hibernate.Session;import org.springframework.dao.DataAccessException;import org.springframework.orm.hibernate3.HibernateCallback;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.aptech.exception.CommonException;import com.aptech.htm.HibernateSessionFactory;/** * 通用类,不再负责事务处理 * 目标对象 * @author 李赞红 * * @param <POJO> */public class Common<POJO> extends HibernateDaoSupport implements ICommon<POJO> { public void insertObject(POJO pojo) throws CommonException {  try {   this.getHibernateTemplate().save(pojo);  } catch (DataAccessException e) {   e.printStackTrace();   throw new CommonException(e);  } } public void updateObject(POJO pojo) throws CommonException {  try {   this.getHibernateTemplate().update(pojo);  } catch (DataAccessException e) {   e.printStackTrace();   throw new CommonException(e);  } } public void deleteObject(Class theClass, long id) throws CommonException {  try {   Object obj = this.getHibernateTemplate().load(theClass, id);   this.getHibernateTemplate().delete(obj);  } catch (DataAccessException e) {   // TODO Auto-generated catch block   e.printStackTrace();   throw new CommonException(e);  } } public POJO loadObject(Class theClass, long id) throws CommonException {  try {   Object obj = this.getHibernateTemplate().load(theClass, id);   return (POJO) obj;  } catch (DataAccessException e) {   // TODO Auto-generated catch block   e.printStackTrace();   throw new CommonException(e);  } } public List queryObjects(final String hql) throws CommonException {  class Hc implements HibernateCallback{   public Object doInHibernate(Session session)     throws HibernateException, SQLException {    return session.createQuery(hql).list();   }  }    try {   return this.getHibernateTemplate().executeFind(new Hc());  } catch (DataAccessException e) {   e.printStackTrace();   throw new CommonException(e);  } } public List queryObjects(Class theClazz) throws CommonException {  return this.queryObjects("from " + theClazz.getSimpleName()); }}6、配置事务<!-- 事务管理器,相当于TransactionProxy,定义事务的开启、提交、回滚 --> <bean id="htm" abstract="true">  <property name="我们的类">   <ref bean="我们的类"/>  </property> </bean>  <bean id="udao" parent="baseDao"></bean> <bean id="rdao" parent="baseDao"></bean>8、将Dao注入Service <bean id="grantService" ref="rdao"></property>  <property name="udao" ref="udao"></property> </bean>

热点排行