bean.xml中添加:
<!-- spring对hibernate的简单封装 --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="mySessionFactory"/> </bean> <bean id="userDAOImpl" class="com.test.dao.impl.UserDAOImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"/> </bean> <bean id="logDAOImpl" class="com.test.dao.impl.LogDAOImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"/> </bean>
实现接口类
UserDAOImpl.java
package com.test.dao.impl; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.test.dao.UserDAO; import com.test.model.User; public class UserDAOImpl extends HibernateDaoSupport implements UserDAO { public void save(User user) { this.getHibernateTemplate().save(user); } }
LogDAOImpl.java
package com.test.dao.impl; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.test.dao.LogDAO; import com.test.model.Log; public class LogDAOImpl extends HibernateDaoSupport implements LogDAO { public void save(Log log) { this.getHibernateTemplate().save(log); } }
其他内容和“spring进行声明式事务管理(xml)”这一节一致
注:hibernateDaoSupport很少用,因为它只能用xml方式,不能用annotation方式(这里不是绝对的,这里说不能用平时习惯使用的annotation方式,因为HibernateDaoSupport类中的所有方法都是final的,不能被继承),只要有多少个实现接口的类,就得在bean.xml中配置多少个实现接口的类,比起hibernateTemplate,还是用后者更省心。
合理使用继承关系还是可以使用annotation的方式,以下使用annotation方式实现:
bean.xml中添加:
<!-- spring对hibernate的简单封装 --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="mySessionFactory"/> </bean>
SuperDAO.java
package com.test.dao.impl; import javax.annotation.Resource; import org.hibernate.SessionFactory; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class SuperDAO extends HibernateDaoSupport { // 第一种方式(注:这里不是setHibernateTemplate) /* @Resource public void setSuperHibernateTemplate(HibernateTemplate hibernateTemplate) { super.setHibernateTemplate(hibernateTemplate); }*/ // 第二种方式(注:这里不是setHibernateTemplate) @Resource public void setSuperHibernateTemplate(SessionFactory sessionFactory) { super.setSessionFactory(sessionFactory); } }
实现接口类
UserDAOImpl.java
package com.test.dao.impl; import org.springframework.stereotype.Component; import com.test.dao.UserDAO; import com.test.model.User; @Component("userDAOImpl") public class UserDAOImpl extends SuperDAO implements UserDAO { public void save(User user) { this.getHibernateTemplate().save(user); } }
LogDAOImpl.java
package com.test.dao.impl; import org.springframework.stereotype.Component; import com.test.dao.LogDAO; import com.test.model.Log; @Component("logDAOImpl") public class LogDAOImpl extends SuperDAO implements LogDAO { public void save(Log log) { this.getHibernateTemplate().save(log); } }
其他内容和“spring进行声明式事务管理(xml)”这一节一致
相关推荐
1、Spring 3.x 对 Hibernate 4.x 不提供 HibernateDaoSupport,所以在dao的实现层注入SessionFactory 2、报错:org.hibernate.HibernateException: No Session found for current thread 意思是必须在...
springboot2.0多数据源集成hibernate配置hibernateDaoSupport, dao层继承hibernateDaoSupport, 不使用jpa方式。
有效的Session管理:Spring提供了有效、简单、安全的Hibernate Session处理。 IoC容器降低了DAO组件与业务逻辑层之间的耦合性。 DAO模式的使用,降低了系统重构的代价。 方便的事务管理:Spring提供的声明式事务处理...
6.Hibernate继承 HibernateDaoSupport。 7.Spring+Junit4单元测试,优点:不会破坏数据库现场,等等。 2)Demo 导入说明: 1.Eclipse Encoding:GBK 2.Eclipse 导入后可能需要在 Xml Catalog 手动添加:ehcache-...
其中包含有org.springframework.orm.hibernate3.support.HibernateDaoSupport.class,
可以利用hibernate tools生成相关映射文件已经po对象、dao对象,dao也可以自己手动编写,无非就是实现crud,如果通过继承hibernate提供的HibernateDaoSupport,则可以更轻松的实现 关键就在于配置文件,下面看一个...
Spring2.5和Hibernate3集成 采用声明式事务 1.声明式事务的配置 * 配置sessionFactory * 配置事务管理器 * 配置事务的传播特性 * 配置哪些类哪些方法使用事务 2.编写业务逻辑方法 * 继承...
Spring hibernate3. HibernateDaoSupport 源码
TfileDAOHibernate通过扩展Spring提供的Hibernate支持类HibernateDaoSupport而建立,HibernateDaoSupport封装了HibernateTemplate,而HibernateTemplate封装了Hibernate所提供几乎所有的的数据操作方法,如execute...
6.5 Spring整合Hibernate 6.6 Spring提供的DAO支持 6.5.2 管理Hibernate的SessionFactory 6.5.3 使用HibernateTemplate 6.5.4 使用HibernateCallBack 6.5.6 使用IoC容器组装各种组件 6.5.7启动web容器读取xml配置...
相同点:在applicationConext.xml中 配置datasource-->sessionfacrtory from dataSource--->HibernateTransactionManager(impl)-->PROPAGATION_REQUIRED事物隔离级别 (2).不同点: HibernateDaoSupport: 在...
Spring+Hibernate实现增删改查的两种方法,HibernateTemplate实现和HibernateDaoSupport实现
spring-boot 集成hibernate,使用druid数据库连接池,dao继承HibernateDaoSupport 的实现,
本篇文章主要介绍了Spring4整合Hibernate5详细步骤,具有一定的参考价值,有兴趣的同学可以了解一下
Hibernate Session的轻量级封装 * 默认情况下运行期异常才会回滚(包括继承了RuntimeException子类),普通异常是不会滚的 * 编写业务逻辑方法时,最好将异常一直向上抛出,在表示层(struts)处理 * 关于事务...
一、 开始使用annotation配置Spring 16 二、 @Autowired、@Qualifier 16 (一) @Autowired 16 (二) @Qualifier 17 三、 @Resource(重要、推荐) 17 (一) JSR-250 17 (二) @Resource 17 四、 @Componet 18 五、 @Scope...
谷歌百度后,说spring3.1还没有对hibernate4.1开始支持,具体情况不知道,有知道告诉我一下!呵呵 不懂! 我这里有测试的demo 基本上大家能看懂! 还有就是我这里习惯把service和dao按照不同的模块进行划分,比较...
SpringSide对Hibernate做了三层封装: 第一层:HibernateGenericDao,基于spring的HibernateDaoSupport,但加入了分页函数与各种Finder函数,并使用泛型避免了返回值强制类型转换。 第二层:HibernateEntityDao,...
18. class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 19. <property name="dataSource" ref="dataSource" /> 20. <property name="hibernateProperties"> 21. <props> 22...
springboot集成hibernate无jpa,在dao中使用SessionFactory操作数据库