持久层只要完成数据对数据库增删改查的操作,我们常说的hibernate区别于mybatis是在于他的全自动,而hibernate的全自动则主要体现于

他的模板,一些简单的数据操作我们就不用再去手写sql了,可以通过对hibernate模板的配置去完成。

一、在dao中注入hibernate模板

1.1在dao层继承spring提供的hibernate模板

修改实体product类,让他继承HibernateDaoSupport如图:

1.2在applicationcontext.xml中配置dao层注入hibernate模板

        <!-- 配置dao层:注入hibernate模板 -->
<bean id="productDao" class="com.ssh.dao.productDao">
<!-- ref 值与sessionFactory bean id保持一致 -->
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

1.3在dao层调用hibernate模板完成数据操作:(模板调用this.getHibernateTemplate().)

	public void sava(product product){
System.out.println("业务层调用dao层成功!");
//调用hibernate模板完成保存数据操作
this.getHibernateTemplate().save(product);
}

二、添加事务管理

2.1配置事务管理

        <!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

2.2开启事务管理

        <!-- 开启注解事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>

2.3在业务层引入事务管理机制@Transactional

最新文章

  1. webform Repeater、地址栏传值、Response
  2. Linux基本命令(一)
  3. kuangbin_MST C (POJ 2031)
  4. thinkphp模板中foreach循环没数据的错误解决
  5. Codeforces Round #378 (Div. 2) D题(data structure)解题报告
  6. gulp 基础运用
  7. microsoft NLayerApp项目中的层次结构图
  8. 如何在在网页上显示pdf文档
  9. jQuery插件的开发
  10. 简单的ajax遮罩层(加载进度圈)cvi_busy_lib.js
  11. Linux查询一台机器的IP地址和其对应的域名
  12. jQuery 写的textarea输入字数限制
  13. call 和 apply
  14. vue-cli,build 后,报错的解决办法
  15. Eclipse------maven使用Maven build编译web项目显示&quot; javax.servlet.http 不存在&quot;
  16. 20 个 jQuery 和 CSS 的文本特效插件
  17. POJ2533 最长递增子序列
  18. Python并发编程-生产消费模型
  19. 7)Linux程序设计入门--网络编程
  20. 获取HTML元素位置--js学习笔记

热门文章

  1. 坚守自主创新,璞华HawkEye IETM系统惠及国计民生
  2. python 作用域与命名空间
  3. 【Java面试】这应该是面试官最想听到的回答,Mysql如何解决幻读问题?
  4. .NET 实现启动时重定向程序运行路径及 Windows 服务运行模式部署
  5. ProxySQL 读写分离方法
  6. Logstash: 启动监控及集中管理
  7. Kibana:如何让用户匿名访问 Kibana 中的 Dashboard
  8. 利用curl命令访问Kubernetes API server
  9. 洛谷P1638 逛画展 (尺取法)
  10. windows下利用_popen,_wpoen创建管道进行系统命令输出数据