Spring整合Hibernate的步骤
来源:互联网 发布:vb right函数怎么用 编辑:程序博客网 时间:2024/04/29 04:30
为什么要整合Hibernate?1、使用Spring的IOC功能管理SessionFactory对象LocalSessionFactoryBean2、使用Spring管理Session对象HibernateTemplate3、使用Spring的功能实现声明式的事务管理整合Hibernate的步骤:1、配置SessionFactory(可以自动完成)<beanid="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="configLocation"value="classpath:hibernate.cfg.xml"></property></bean>2、配置HibernateTemplate,用于完成数据操作<bean id="hibernateTemplete" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory"ref="sessionFactory"></property></bean>3、让Common继承HibernateDaoSupport类,该类提供了HibernateTemplate的getter和setter方法。
4、将hibernateTemplete注入到Common中<bean id="common" class="com.aptech.common.Common"><property name="hibernateTemplate"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 implementsICommon<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) throwsCommonException {try {Object obj = this.getHibernateTemplate().load(theClass, id);this.getHibernateTemplate().delete(obj);} catch (DataAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();throw new CommonException(e);}}public POJO loadObject(Class theClass, long id) throwsCommonException {try {Object obj = this.getHibernateTemplate().load(theClass, id);return (POJO) obj;} catch (DataAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();throw new CommonException(e);}}public List queryObjects(final String hql) throwsCommonException {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) throwsCommonException {return this.queryObjects("from " +theClazz.getSimpleName());}}6、配置事务<!-- 事务管理器,相当于TransactionProxy,定义事务的开启、提交、回滚 --><bean id="htm"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory"><ref bean="sessionFactory"/></property></bean><bean id="ti"class="org.springframework.transaction.interceptor.TransactionInterceptor"><property name="transactionManager"><ref bean="htm"/></property><property name="transactionAttributes"><props><!-- key:方法名称 --><propkey="insert*">PROPAGATION_REQUIRED</prop><propkey="update*">PROPAGATION_REQUIRED</prop><propkey="delete*">PROPAGATION_REQUIRED</prop><propkey="load*">PROPAGATION_REQUIRED,readOnly</prop><prop key="query*">PROPAGATION_REQUIRED,readOnly</prop></props></property></bean><!-- 自动代理,代理业务对象 --><beanclass="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"><property name="beanNames"><list><value>common</value></list></property><property name="interceptorNames"><list><value>ti</value></list></property></bean>7、将common注入Dao<bean id="baseDao" abstract="true"><property name="common"><ref bean="common"/></property></bean><bean id="udao"class="com.aptech.dao.impl.UserDao"parent="baseDao"></bean><bean id="rdao"class="com.aptech.dao.impl.RoleDao"parent="baseDao"></bean>8、将Dao注入Service<bean id="grantService"class="com.aptech.service.impl.GrantService"><property name="rdao"ref="rdao"></property><property name="udao"ref="udao"></property></bean>最近整理了学习材料,有需要的请下载,我放微信里面了,方便下载,还能交流,扫描我的二维码头像即可。
0 0
- Spring整合Hibernate的步骤
- Spring整合Hibernate的步骤
- Spring整合Hibernate的步骤
- Spring整合Hibernate的步骤
- Spring整合Hibernate的步骤
- Spring整合Hibernate的步骤
- Spring整合Hibernate的步骤
- Spring整合Hibernate的步骤
- Spring整合Hibernate的步骤
- Spring整合Hibernate的步骤
- Spring整合Hibernate步骤
- struts2、hibernate、spring的整合步骤
- spring整合hibernate的步骤详细
- java Struts2,Spring,Hibernate的整合步骤
- Hibernate与spring整合时的整合步骤
- Struts2, spring,hibernate 整合步骤
- Spring整合Hibernate图文步骤
- struts2+spring+hibernate整合步骤
- Android Studio 删除 Module
- 手工建库oracle 11g for windows
- 布局管理杂记
- 关于elipse找不到真机提示:The connection to adb is down, and a severe error has occured
- Crosswalk Cordova 得到的应用 运行效果不流畅
- Spring整合Hibernate的步骤
- 大学生公益创业成功的三大后盾
- 我的Android案例—签到日历
- 手机音视频开发 视频聊天APP应用
- STM32 启动解析,启动代码,__main main
- python与C/C++互相调用
- Android性能优化典范
- 随机 字符串拼接
- C#操作excel