什么是HibernateTemplate类?

时间:2017-05-05 09:22:53

标签: java hibernate

我是Hibernate的新手,目前想要实现Hibernate Template类,任何一个请告诉我有关Hibernate Template类的信息。

xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd">

    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost/test" />
        <property name="username" value="root" />
        <property name="password" value="mnrpass" />
    </bean>
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="mappingResources">
            <list>
                <value>employee.hbm.xml</value>
            </list>
        </property>
        <property name="configLocation" value="classpath:hibernate.cfg.xml" />
    </bean>
    <bean id="springHibernateExample" class="com.javarticles.spring.hibernate.SpringHibernateExample">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
</beans>

3 个答案:

答案 0 :(得分:10)

Copied from Hibernate Interview Questions:

  

休眠模板

     

当Spring和Hibernate集成开始时,Spring ORM提供了两个   辅助类 - HibernateDaoSupportHibernateTemplate。原因   使用它们是为了从Hibernate获取Session并获得好处   Spring事务管理。但是从Hibernate 3.0.1开始,我们可以   使用SessionFactory getCurrentSession()方法获取当前值   会话并使用它来获得spring事务管理的好处。   如果你通过上面的例子,你会看到它是多么容易和   这就是为什么我们不应该再使用这些类了。

     

HibernateTemplate的另一个好处是异常翻译,但可以通过使用@Repository注释轻松实现   服务类,如上面的spring mvc示例所示。这是一个技巧   判断你的知识以及你是否知道最近的问题   发展与否。

答案 1 :(得分:3)

HibernateTemplate 是一个帮助程序类,用于简化数据访问代码。此类支持自动将已检查异常的HibernateExceptions转换为DataAccessExceptions,这是一个未经检查的异常。 HibernateTemplate通常用于实现数据访问或业务逻辑服务。中心方法是execute(),它支持实现HibernateCallback接口的Hibernate代码。 定义HibernateTemplate。

org.springframework.orm.hibernate.HibernateTemplate是一个帮助器类,它提供了从数据库中查询/检索数据的不同方法。它还将已检查的HibernateExceptions转换为未经检查的DataAccessExceptions。

HibernateTemplate的好处:

  1. HibernateTemplate简化了与Hibernate Session的交互。

  2. 常用的函数简化为单个方法调用。

  3. 会话自动关闭。

  4. 异常会自动捕获并转换为运行时异常。

  5. 访问此链接以获取正确的示例

    http://www.javarticles.com/2015/04/spring-hibernatetempate-example.html

答案 2 :(得分:1)

HibernateTemplate是org.springframework.orm.hibernate3的类。 HibernateTemplate提供了hibernate和spring的集成。 Spring自己管理数据库连接DML,DDL等命令。 HibernateTemplate具有保存,更新,删除等方法。 尝试了解如何在我们的spring应用程序中配置HibernateTemplate。

在spring应用程序的application.xml中添加xml配置。

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
  <ref bean="sessionFactory" />
</property>

hibernateTemplate将在dao类中使用。初始化hibernateTemplate。提供一个setter方法来按弹簧设置hibernateTemplate。

private HibernateTemplate hibernateTemplate;

public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
    this.hibernateTemplate = hibernateTemplate;
}

public void persist(){
    User u1= new User(1,"Ankita");
    hibernateTemplate.save(u1);

    User u2= new User(2,"Renu");
    hibernateTemplate.save(u2);

}