Spring学习6_Spring整合HibernateTemplate应用

一、实现原理

Spring整合HibernateTemplate应用了模板方法设计,具体如下,以一个Demo为例,具体实现原理如下:

首先定义一个回调/钩子类,如下:

package com.dao;

import org.hibernate.Session;

public interface MyHibernateCallBack {
    public void doHibernate(Session s);
}

在HibernateTemplate调用时通过上述回调来执行具体的数据库操作,如下:

package com.dao;

import org.hibernate.Session;

public class MyHibernateTemplate {

    public void excuteNativeSession(MyHibernateCallBack callBack){

        Session session = getCurrentSession();
        try {

            //采用回调执行具体数据库操作
            callBack.doHibernate(session);

            session.close();
            session.getTransaction().commit();
        } catch (Exception e) {

            session.getTransaction().rollback();
        }

    };

    //获取当前Session
    private Session getCurrentSession(){
        return null;
    };
}

模板调用方法

package com.dao;

import org.hibernate.Session;

import com.vo.Student;

public class UserDaoImpl implements UserDao {

    @Override
    public void save(final Student student) {
        new MyHibernateTemplate().excuteNativeSession(new MyHibernateCallBack() {

            @Override
            public void doHibernate(Session s) {
                s.save(student);

            }
        });
    }

    @Override
    public void delete() {
        // TODO Auto-generated method stub

    }

}

原文地址:https://www.cnblogs.com/toDjlPersonnalBlog/p/4681506.html

时间: 2024-10-24 23:14:26

Spring学习6_Spring整合HibernateTemplate应用的相关文章

Spring学习5-Spring整合JDBC及其事务处理(注解方式)

一.整合的步骤   1.步骤一:首先要获得DataSource连接池(推荐使用B方式): 要对数据库执行任何的JDBC操作,需要有一个Connection.在Spring中,Connection对象是通过DataSource获得的. 有几种方法可以得到DataSource, 其中一种方法是使用Spring提供的轻量级 org.springframework.jdbc.datasource.DriverManagerDataSource,第二种方法是使用 org.apache.commons.db

Spring学习-10-ssh整合

1)引入SSH jar文件 Struts 核心 jar Hibernate 核心 jar Spring core 核心功能 web 对web模块的支持 aop aop支持 orm 对hibernate支持 jdbc/tx  jdbc相关包.事务相关包 2)配置 web.xml 初始化 struts和spring功能 struts 配置请求路径与映.xml 射action的关系 Spring IOC容器配置 bean-base.xml [共用信息] bean-dao.xml bean-servic

Spring学习4_整合Hibernate进行数据库操作

很多项目中后端通过Spring+hibernate进行数据库操作,这里通过一个简单Demo来模拟其原型. 代码结构 1.Spring配置如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSche

《Spring学习笔记》:Spring、Hibernate、struts2的整合(以例子来慢慢讲解,篇幅较长)

<Spring学习笔记>:Spring.Hibernate.struts2的整合(以例子来慢慢讲解,篇幅较长) 最近在看马士兵老师的关于Spring方面的视频,讲解的挺好的,到了Spring.Hibernate.struts2整合这里,由于是以例子的形式来对Spring+Hibernate+struts2这3大框架进行整合,因此,自己还跟着写代码的过程中,发现还是遇到了很多问题,因此,就记录下. 特此说明:本篇博文完全参考于马士兵老师的<Spring视频教程>. 本篇博文均以如下这

Spring学习(五)spring整合hibernate

上一篇博客中讲到spring dao层对jdbc的封装,用到了模板模式的设计思想 .这篇我们来看看spring中的orm层对hibernate的封装,也就是所谓的spring整合 hibernate.这里同样用了模板模式, 将hibernate开发流程封装在ORM层提供的模板类HibernateTemplate中,通过在DAO中对模板类的使用,实现对传统hibernate开发流程的代替. 一.先来看看Hibernate的传统开发流程: 1) 配置SessionFactory对象 hibernat

mybatis学习笔记(14)-spring和mybatis整合

mybatis学习笔记(14)-spring和mybatis整合 mybatis学习笔记14-spring和mybatis整合 整合思路 整合环境 sqlSessionFactory 原始dao开发和spring整合后 mapper代理开发 遇到的问题 本文主要将如何将spring和mybatis整合,只是作简单的示例,没有使用Maven构建.并展示mybatis与spring整合后如何进行原始dao开发和mapper代理开发. 整合思路 需要spring通过单例方式管理SqlSessionFa

Spring学习(六)spring整合注解形式的hibernate

上篇博客中谈到spring中如何整合普通形式的hibernate,这次我们来总结下如何整合注解形式的hibernate. 我们知道在普通hibernate中,表与实体的映射关系是写在映射关系文件当中的,一个实体类对应一个映射关系配置文件.而在注解形式中是没有这个映射关系文件的,关系直接在实体类中通过注解的方式展现,所以写法上略有些不同. 下面我们通过一个例子来看看他们的区别.还是使用上篇博客的例子,先去掉这个hibernate反向生成的City.hbm.xml文件. Dao层里面是不需要修改的,

hibernateTemplate不建议在Spring与Hibernate整合中使用

HibernateTemplate类属于spring框架中的类 :org.springframework.orm.hibernate3.HibernateTemplate HibernateTemplate类目前Hibernate4不支持此类,只支持到Hibernate3,而且在SH整合过程中,如果DaoImpl采用Hibernate实现方法,如果采用Hibernate原声的SessionFactory,即使不采用Spring,原声的SessionFaction同样可以使用,将有利于Dao是可以

Hibernate整合Spring异常&#39;sessionFactory&#39; or &#39;hibernateTemplate&#39; is required

今日在写GenericDao时,发现了一个异常,内容如下: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'genericDao' defined in class path resource [spring.common.xml]: Invocation of init method failed; nested exception is java.lang.Ille