千家信息网

为什么用Spring来管理Hibernate

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章将为大家详细讲解有关为什么用Spring来管理Hibernate,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。为什么要用Hibernate框架
千家信息网最后更新 2026年11月04日为什么用Spring来管理Hibernate

这篇文章将为大家详细讲解有关为什么用Spring来管理Hibernate,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

为什么要用Hibernate框架?

既然用Hibernate框架访问管理持久层,那为何又提到用Spring来管理以及整合Hibernate呢?

首先我们来看一下Hibernate进行操作的步骤。比如添加用户的一个步骤。在此为了解释提出的问题

看截图,可以看出,Hibernate操作的步骤如下:

  1. 获得Configuration对象

  2. 创建SessionFactory

  3. 创建Session

  4. 打开事务

  5. 进行持久化操作。比如上面的添加用户操作

  6. 提交事务

  7. 发生异常,回滚事务

  8. 关闭事务

使用Hibernate进行访问持久层,每次都要进行这八个步骤。但是若使用Spring对Hibernate进行管理,又是怎么样的呢?

首先,Spring对Hibernate提供了HibernateTemple类。这个模版类对session进行封装。并且Spring会默认为自动提交事务。所在在dao层直接写入this.save(Object)即可。

在实践中,遇到了一个问题,无法插入数据库,经过一番折腾,多次实验,验证,总结一下原因,结果如下:

注意:所有的操作都必须在事务中进行。若单纯的使用Hibernate,则事务需要手动开启提交关闭操作。当然也可以在Hibernate配置文件中,自动提交。

若使用Spring管理Hibernate,则默认的是自动提交事务。但是在此,需要注意的是:若使用Spring在配置文件中配置数据源而不使用hibernate.cfg.xml,则可以成功插入数据库,因为HibernateTemple默认提供自动提交事务。在Spring的配置文件配置数据源如下:使用此数据源需要的jar如下:commons-dbcp.jar,commons-pool.jar,msbase.jar,mssqlserver.jar, msutil.jar,sqljdbc4.jar;

                                                                          org.hibernate.dialect.SQLServerDialect              update                  !--         如果采用传统的hbm.xml的方式,可以采用如下方式来简化注册hbm.xml的步骤,并且class为LocalSessionFactoryBean -->                              classpath:User.hbm.xml                  

若Spring中不是直接配置数据源,而是使用hibernate.cfg.xml,则是无法若直接this.save(Object),则无法插入数据库中,但是可以保存中缓存中。因为所有的操作都是在事务中执行的,而hibernate.cfg.xml数据源则默认是不是自动提交的。解决的办法如下:可以在hibernate.cfg.xml中填写:

true

以下Spring使用hibernate.cfg.xml数据源

                     classpath:hibernate.cfg.xml                                                classpath:User.hbm.xml                          

以上,介绍了Spring来管理Hibernate的好处在于,不用手动创建SessionFactory,Session,不用手动开启提交关闭事务,这一切完全都是由Spring来管理。并且Spring还提供了HibernateTemple的工具,使一切操作简单方便。

dao层在Spring配置文件中配置如下:

<bean id="userDao" class="com.UserDao.UserDaoImpl">        

则在dao层的代码如下:

package com.UserDao;  import org.springframework.orm.hibernate3.HibernateTemplate;  import com.user.User;   public class UserDaoImpl extends HibernateTemplate implements UserDao {  @Override     public void insert(User user) {          this.save(user);          }  }

这只是其中的关键的代码。

关于为什么用Spring来管理Hibernate就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

事务 数据 管理 配置 数据源 步骤 文件 手动 数据库 不用 代码 内容 文章 方式 是在 更多 框架 用户 知识 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技海报 广州淘业互联网络科技 圆梦互联网科技 金融科技 互联网金融 广西互联网科技公司 互联网前沿科技 湖南洣水互联网科技有限公司扣款 卫星互联网科技股票 成都玖崟互联网科技有限公司乐商圈怎么样 西藏七维空间互联网科技有限公司 受益于互联网科技的高速发展 科技互联网大厂 港股科技和互联网 用友工业互联网科技发展 互联网金融科技公司的优势 江苏苏星互联网科技有限公司 互联网科技收购价值 互联网科技博主张洲 深圳互联网科技园地址 平安好医生打造互联网科技医疗 腾讯阿里互联网科技 互联网 的科技创新 唐信互联网科技 团飞科技与伯堂互联网服务平台 厦门比较好的科技互联网公司 中国科技创新与世界互联网大会 互联网科技新闻 互联网科技收购价值 保山浩联互联网科技有限公司 杭州科技互联网公司有哪些
0